Hi,
I'm using WiX 3.5 in VS 2010.
Some of my users are experiencing a problem after performing a major
upgrade of our product. One component (WiX for the component shown below)
seems to have it's file extension and mime type properly registered during
WriteRegistryValues, and then the registration is removed because
RemoveRegistryValues executes after WriteRegistryValues.
Our application includes VS2005 runtimes, and so I think our InstallExecute
sequencing may be less than ideal, but seems to hold together for the most
part:
*Install Execute:*
<InstallExecuteSequence>
<!-- see the RemoveExistingProducts help entry at
http://msdn.microsoft.com/en-us/library/aa371197.aspx for other options for
scheduling RemoveExistingProducts -->
<!-- Sequencing RemoveExistingProducts after InstallFinalize seems to
leave more on the machine than I'd like
- especially when switching between commercial and beta builds. At
least for betas, I think it's better to do a full remove
right before InstallInitialize.
<RemoveExistingProducts
After="InstallFinalize"></RemoveExistingProducts>
-->
<!--
"Avoid placing RemoveExistingProducts action before InstallInitialize"
A warning from the community content at MSDN:
http://msdn.microsoft.com/en-us/library/aa371197.aspx
If your installation includes VS2005 runtime merge modules and
upgrades existing installation
(which also contains the same C /C++ runtime merge modules), avoid
placing RemoveExistingProducts
action before InstallInitialize, otherwise upgrade on Vista will
uninstall already installed
SxS runtime modules and silently fails to install them again,
obviously breaking all
installed programs depending on VS2005 cruntime. (can be cured by MSI
'repair' facility).
<RemoveExistingProducts
Before="InstallInitialize"></RemoveExistingProducts>
-->
<InstallExecute Before="RemoveExistingProducts"></InstallExecute>
<RemoveExistingProducts
Before="InstallFinalize"></RemoveExistingProducts>
<!-- Other custom actions omitted for brevity -->
</InstallExecuteSequence>
*Component registration is as follows:*
<Component Id="RhinoInstallerEngine.64bit.$(var.Platform)"
Guid="11B0087A-8339-482D-8F17-BCD30780EC1B"
Directory="INSTALLDIR.System.x64">
<File Id="RhinoInstallerEngine.64bit.$(var.Platform).rhiexec.exe"
Source="..\$(var.Platform)\Program Files\System\x64\rhiexec.exe"/>
<RegistryValue Root="HKLM"
Key="SOFTWARE\Classes\Rhino.InstallerPackage\DefaultIcon"
Value=""[INSTALLDIR.System.x64]rhiexec.exe",0" Type="string" />
<RegistryValue Root="HKLM"
Key="SOFTWARE\Classes\Rhino.InstallerPackage" Name="FriendlyTypeName"
Value="!(loc.RHIFileDescription)" Type="string" />
<ProgId Id='Rhino.InstallerPackage' Description='Rhino Installer
Package' Icon='RhinoInstallerEngine.64bit.$(var.Platform).rhiexec.exe'
IconIndex='0'>
<Extension Id='rhi' ContentType='application/rhi'>
<Verb Id='open' Command='!(loc.RHIFileVerb)'
TargetFile='RhinoInstallerEngine.64bit.$(var.Platform).rhiexec.exe'
Argument='"%1"' />
</Extension>
</ProgId>
</Component>
*Attached is the verbose install log.*
Of note are lines:
*Line 48242*: MSI (s) (5C:20) [09:35:54:748]: Executing op:
RegAddValue(Name=Content Type,Value=application/rhi,)
*Line 62911*: MSI (s) (5C:78) [09:36:06:713]: Executing op:
RegRemoveValue(Name=Content Type,Value=application/rhi,)
Any ideas how I can fix this? Please let me know if you need any other
details.
- Brian
Brian Gillespie
Rhinoceros Development
Robert McNeel & Associates
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users