I find this usually happens when the service doesn't shutdown in a timely manner. In my experience the stop service control in Windows Installer is a bit temperamental especially if you have more than one service to stop (I have often resorted to using a custom action to run "net stop"). It also makes a difference where you schedule the remove existing products and I have had more luck with scheduling after InstallExecute (probably because it isn't removing the service).
(In my latest install I have found the most reliable option is to do all the application and service stops in a separate install.) Neil -----Original Message----- From: Wang, Zhongsheng [mailto:zhongsheng.w...@intel.com] Sent: 05 January 2013 23:56 To: wix-users@lists.sourceforge.net Subject: [WiX-users] how to deal with the service removal during upgrade and repair in WIX? I am looking for some advice on how to deal with the service removal during upgrade (major and minor) and repair. Since OS will mark the service for deletion when the service is removed and reboot is required, any future service update during the installation process will be ignored. This leaves the service not installed after repair or upgrade. What I want is that the service will NOT be removed during upgrade and repair but removed during uninstallation (Remove option). Here are some code snippet I am used to handle this, but it does not work reliably. I hope somebody can give me some advice on this topic. Your help will be highly appreciated. The code seems to work for Repair and Major Upgrade, but does not work well with the minor upgrade where only the 4th field of the revision is different. <!-- upgrade definition --> <Upgrade Id="$(var.UpgradeCode)" <UpgradeVersion Property="MAJORUPGRADE" Minimum="0.0.0.0" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" IncludeMaximum="no" OnlyDetect="no" IgnoreRemoveFailure="no" MigrateFeatures="yes" /> <!-- Detect for changes in 4th field only --> <UpgradeVersion Property="MINORUPGRADE" Maximum="$(var.ProductVersion)" Minimum="$(var.ProductVersion)" IncludeMinimum="yes" IncludeMaximum="yes" OnlyDetect="yes" /> </Upgrade> <!-- Execution sequence --> <InstallExecuteSequence> <Custom Action="Uninstall_HIDDriver" After="RemoveRegistryValues"> <![CDATA[REMOVE="ALL" AND NOT (MAJORUPGRADE OR MINORUPGRADE)]]></Custom> </InstallExecuteSequence> So what could be wrong? Thanks, zhong ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122912 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_123012 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users