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