-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert O'Brien Sent: Thursday, September 11, 2008 6:35 PM To: 'General discussion for Windows Installer XML toolset.' Subject: [WiX-users] getting working v1.0 -> v1.0 minor update using msp & msi solutions pulled together
Thanks for all the responses to my recent questions associated with getting working v1.0 -> v1.0 minor update using msp & msi solutions pulled together. At this point I believe I have what should be working sources and build output to carry out a minor upgrade using both the msp & msi approaches. i've attached my product, sequence, customaction and product patch sources if it is of any help to others trying to accomplish the same thing. Below I also included the Patch.wixproj postBuild event processing I using to generate my patch build output in a tfs automated build friendly way to address current wix project settings support not available for patch msp build output. For some reason the customaction/sequences steps that attempt to set the necessary reinstall and reinstallmode property settings for msp and msi minor upgrade processing scenarios without requiring you do pass values on the command line things don't work. If I pass them from the command line, e.g. msiexec /p "My Service Deliverable Patch.msp" /qb reinstall=all reinstallmode=omus /l* d:\temp\v10tov11patch.log msiexec /i "My Service Deliverable.msi" /qb reinstall=all reinstallmode=vomus /l* d:\temp\v10tov11upgrade.log then the msp update doesn't succeed but the msi update does. Not sure what I got going on to cause the msp to not work even when required props are set using command line. Some outstanding questions I have on the minor upgrade front. I have a dll that I expect to be updated in both the msp and msi minor upgrade approach which in an existing v1.0 install is going to be loaded and running in a windows service process that will be in place as a result of the v1.0 install. q1 - should I expect that minor upgrade using msp or msi can shuffle a new dll into place that may be loaded in an active window service process w/o that service needing to be stopped prior to the file update and restarted afterwards or a reboot being required? q2 - if I for safety reasons I do want to stop the windows service at start of minor upgrade using msp or msi and restart it at the end of the minor upgrade using msp or msi will adding the following customactions into my v1.1 msi and setting the sequencing to ??? accomplish that? <CustomAction Id="QtExecCmdLineSet9" Property="QtExecCmdLineRun9" Value=""[$(var.SystemFolder)]net.exe" start NS$EventingMSSolveInstance" /> <CustomAction Id="QtExecCmdLineRun9" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" /> <CustomAction Id="QtExecCmdLineSet102" Property="QtExecCmdLineRun102" Value=""[$(var.SystemFolder)]net.exe" stop NS$EventingMSSolveInstance" /> <CustomAction Id="QtExecCmdLineRun102" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" /> <Custom Action="QtExecCmdLineSet9" Before="???">Installed And PATCH or UPGRADE</Custom> <Custom Action="QtExecCmdLineRun9" Before="QtExecCmdLineSet9">Installed And PATCH or UPGRADE </Custom> <Custom Action="QtExecCmdLineSet102" Before="???">Installed And PATCH or UPGRADE</Custom> <Custom Action="QtExecCmdLineRun102" Before="QtExecCmdLineSet9">Installed And PATCH or UPGRADE </Custom> q2 - to command line public property settings, other than REINSTALLl and REINSTALLMODE, have any relevance when processing a minor upgrade using msp or msi solutions? --------------------------------------------- move /y "$(TargetDir)en-us\$(TargetName).msi" "$(TargetDir)en-us\$(TargetName).pcp" robocopy "\\rpbuildagent03\builds\RXP Eventing\v1.0adminInstall<file:///\\rpbuildagent03\builds\RXP%20Eventing\v1.0adminInstall>" "$(ProjectDir)obj\$(Configuration)\v1.0adminInstall" /mir /r:0 if not exist "$(ProjectDir)obj\$(Configuration)\v1.1adminInstall" md "$(ProjectDir)obj\$(Configuration)\v1.1adminInstall" rem msiexec.exe /a "$(Setup.TargetDir)en-us\$(Setup.TargetFileName)" /qn TARGETDIR="$(ProjectDir)obj\$(Configuration)\v1.1adminInstall" /l* "$(ProjectDir)obj\$(Configuration)\v1.1adminInstall\RP Event Notification Service.log" if "$(IsDesktopBuild)" == "" msiexec.exe /a "$(SolutionDir)Setup\Setup\bin\$(Configuration)\en-us\RP Event Notification Service.msi" /qn TARGETDIR="$(ProjectDir)obj\$(Configuration)\v1.1adminInstall" /l* "$(ProjectDir)obj\$(Configuration)\v1.1adminInstall\RP Event Notification Service.log" if "$(IsDesktopBuild)" == "false" msiexec.exe /a "$(OutDir)en-us\RP Event Notification Service.msi" /qn TARGETDIR="$(ProjectDir)obj\$(Configuration)\v1.1adminInstall" /l* "$(ProjectDir)obj\$(Configuration)\v1.1adminInstall\RP Event Notification Service.log" if exist "$(TargetDir)en-us\$(TargetName).log" del "$(TargetDir)en-us\$(TargetName).log" rem "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\MsiMsp.exe" -s "$(TargetDir)en-us\$(TargetName).pcp" -p "$(TargetDir)en-us\$(TargetName).msp" -l "$(TargetDir)en-us\$(TargetName).log" pushd "$(TargetDir)en-us\" & "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\MsiMsp.exe" -s "$(TargetName).pcp" -p "$(TargetName).msp" -l "$(TargetName).log" & popd cmd /c echo end processing setup post-build event command lines --------------------------------------------- ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users