Sounds like you might be best served by using a bootstrapper/chainer. On Mon, Oct 10, 2011 at 12:19 AM, Simon Hoffmann < vol714poursyd...@googlemail.com> wrote:
> Hi there, > > I'm new to this list and am writing because I feel like im a Catch-22 > situation. > > I'm maintaining a WiX-authored MSI installer for our company's product > which supports major upgrades. In addition to the main product A, > we're also installing a standalone application B that checks if all of > A's required files have been installed, and have the expected file > version, file size etc. > B must be run after a successful install, which might or might not > require a reboot, and after all installed files have actually been > written to their target destinations. The original author of the > installer solved this for the reboot case with the following > sequencing in the InstallExecuteSequence table (excerpt): > > - InstallInitialize > - [...] > - InstallExecute > - RemoveExistingProducts > - Check if a reboot is required, and if yes, run a CA that writes > RunOnceEx key to run B after next reboot; this requires elevated > permissions, therefore CA must run deferred > - InstallFinalize > > So far, so good(?). > > Now for the next major upgrade, the above requirements still hold, > while we're now also installing 3rd party .NET assemblies to the GAC > whose version is not under our control. This leads to the issue > described in http://support.microsoft.com/kb/905238, "An assembly in > the global assembly cache or SxS is missing after you perform a major > upgrade by using a Windows Installer package". > > The recommended solution is to schedule RemoveExistingProducts after > InstallFinalize. However, (and now comes the Catch-22), while checking > whether a reboot is required only makes sense after > RemoveExistingProducts, the CA cannot be scheduled after > InstallFinalize, because it requires elevation, which in turn requires > it be scheduled between InstallInitialize and InstallFinalize. > > Conversely, if I schedule the CA between InstallInitialize and > InstallFinalize, the reboot check might not be meaningful because > RemoveExistingProducts has not run yet. > > I'd be extremely grateful for any ideas or suggestions. > > > Best, > Simon > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > -- virtually, Rob Mensching - http://RobMensching.com LLC ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users