I was thinking of the advertised case, but I see now that you're not using it in that ProgId component definition. If you have an advertised=yes ProgId, WiX populates the MSI's Extension and ProgId tables and there's nothing else needed - no need for registry entries. I was thinking there could be a case where you switch between advertised/not advertised and the uninstall would remove registry entries that were manually specified, even though they were just created by an advertised=yes ProgId. The more I look the more unlikely this scenario seems. The general point is that I have seen your problem when there was more than one creator of those registry items, sometimes in the same install, that's what I was thinking. Also it will uninstall the entire component and contained registry items if the component id ref count goes to zero, so I assume you've checked that possibility - I'm assuming that the component definition is completely unchanged between the prior install and the upgrade otherwise I wouldn't be looking at more unlikely scenarios.
Phil Wilson On Thu, Dec 5, 2013 at 9:11 AM, Brian Gillespie <br...@mcneel.com> wrote: > Hi Phil, > > Thanks for the reply. I'm not sure what you mean by "Are you sure you > haven't overlapped the Progid element with the registry > stuff?" - can you please elaborate? > > - Brian > > Brian Gillespie > Rhinoceros Development > Robert McNeel & Associates > > > On Wed, Dec 4, 2013 at 9:06 AM, Phil Wilson <phildgwil...@gmail.com> > wrote: > > > There's nothing wrong with a sequence of InstallExecute, REP, > > InstallFinalize at the end of the execute sequence - it's one of the > > choices documented in MSDN. Some rambling thoughts/brain dump to think > > about: > > 1. Are you sure you haven't overlapped the Progid element with the > registry > > stuff? I'm pretty sure that the Progid setting populates the Extension > and > > Progid tables in the MSI file - you can check that - and that means > Windows > > Installer will just do all that registration without you needing to add > > registry entries. Something like that may be going on. > > 2. You're sure that the component guid is the same in the old and the > > upgrade installs? > > 3. Is there a bitness change going on? Was the old version x86 and the > new > > one 64? It's not clear from the log what bitness is being created and > which > > removed. The other issue in this area is Registry Reflection. A 64-bit > file > > association prior to Windows 7 was automatically available to 32 and > 64-bit > > programs. It's suggested here: > > > > > http://msdn.microsoft.com/en-us/library/windows/desktop/dd464643(v=vs.85).aspx > > that both items, native and WOW64 be explicitly created, so an x64 > install > > would create both x64 and WOW64 file associations. > > > > Phil Wilson > > > > > > On Tue, Dec 3, 2013 at 11:19 AM, Brian Gillespie <br...@mcneel.com> > wrote: > > > > > 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 > > > > > > > > > > > ------------------------------------------------------------------------------ > > Sponsored by Intel(R) XDK > > Develop, test and display web and hybrid apps with a single code base. > > Download it for free now! > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ------------------------------------------------------------------------------ > Sponsored by Intel(R) XDK > Develop, test and display web and hybrid apps with a single code base. > Download it for free now! > > http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users