MSI 4.5 and later allow adding additional product/package transactions from
the MSI itself (via custom actions calling APIs). If you can require MSI 4.5
you can accomplish this without resorting to ARPSYSTEMCOMPONENT. You do have
to write small bootstrapper exes that call certain APIs to use this method,
and there is a sequence restriction on the packages you use: 64-bit packages
must be put in the sequence before 32-bit ones
(http://blogs.msdn.com/b/heaths/archive/2009/07/03/installation-sequence-res
trictions-for-multi-package-transactions.aspx). Check the documentation
regarding the <EmbeddedChainer> element.

MSDN documentation starts here:
http://msdn.microsoft.com/library/bb736322.aspx. Note that when they say
"user-defined function" they mean exe file.

-----Original Message-----
From: Elfe Xu [mailto:elf...@microsoft.com] 
Sent: Friday, July 16, 2010 7:27 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] bootstrapper for uninstallation?

Hi,

Now I come to the uninstall part.
When install my product, I have a bootstrapper, that install an external
product first as the prerequisite, and then invoke my own MSI. When
uninstall my product, I also need to uninstall the external product after
uninstall my MSI.
The command I used to uninstall the external product is
msiexec.exe /q /i {THE-GUID-OF-EXTERNAL_PRODUCT} param1=blabla param2=blabla
lotsofparams...
I don't want user to be aware of the external product. If the uninstall of
external product fails, no need to rollback, show a warning or log the
failure would be fine but it's not a hard requirement.

I cannot put the command as a CustomAction, even set the
CustomAction/@Return=asyncNoWait, because my own msi might have not exit yet
when the new one runs.
I'm thinking about have a script which will install my product first and
then uninstall the external product (the bootstrapper for uninstallation),
but since shortcut at start menu for uninstallation is not recommended, how
could I let user remember to use the script to uninstall? Besides, how could
I delete the script itself during uninstall?
I cannot change the UninstallString registry value of ARP, because it's
determined and set by Windows Installer and not opened for customization.

Is the ARPSYSTEMCOMPONENT the only solution for this scenario? Or are there
any other better approaches?

Thanks,
-Elfe



----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to