When I had set up my shortcut (unadvertised, but I am not sure that matters) 
mentioned a few posts back, I got the impression that the registry key didn't 
really matter; it was just a "vestige" of some Windows Installer weirdness and 
would sort of "pollute" the installing user's profile, but that was it. My 
application certainly installs perMachine and all users easily see the shortcut 
in the start menu, etc.

Confound here is that we're using 2003r2 on the machine in question, I guess.

I guess another confound is that I was basically just following the 
documentation without any clear understanding of some aspects of WiX and 
certainly not of many parts of Windows Installer.



Keith Douglas
Statistics Canada | 170 Tunney's Pasture Driveway, Ottawa ON K1A 0T6
Statistique Canada | 170, promenade Tunney's Pasture, Ottawa ON K1A 0T6
keith.doug...@statcan.gc.ca
Telephone | Téléphone 613-951-4405
Facsimile | Télécopieur 613-951-1966
Government of Canada | Gouvernement du Canada 


-----Original Message-----
From: Nicolás Alvarez [mailto:nicolas.alva...@gmail.com] 
Sent: October-03-13 3:24 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WiX disaster -- how did I cause it?

2013/9/30 Nicolás Alvarez <nicolas.alva...@gmail.com>:
> 2013/9/30 Charles Jenkins <cejw...@gmail.com>:
>> As always, thank you all for trying to help.
>>
>> Rob, I took your and Phil's advice and scoped out the Event Log. Indeed it 
>> appears the missing component is that user-specific registry key that I 
>> personally don't want anyway, but MSI seems to require:
>>
>> Detection of product '{EC784F33-0A7C-4899-875B-5ADC75D7A670}', feature 
>> 'ProductFeature', component '{D3EB384F-AA52-4AAF-AD55-F610C55DC2C7}' failed. 
>> The resource 'HKEY_CURRENT_USER\Software\TEC\TEC Timesheet\' does not exist.
>>
>> I tried commenting out just the RegistryKey line, but that gets me the 
>> familiar error "ICE38: Component StartMenuDir installs to user profile. It 
>> must use a registry key under HKCU as its KeyPath, not a file."
>>
>> I'm wondering if the root of the problem is that StartMenuDir installs into 
>> a user profile. What I'm trying to do is create a program menu folder for 
>> all users. Have I just chosen completely the wrong approach?
>
> The registry key should be in HKLM to avoid your 
> product-getting-repaired problem (I don't know why that causes a 
> reboot, but I think that's beside the point; this shouldn't need a 
> reboot-less repair either). So your real problem is now ICE38. I can't 
> figure out why it's saying the component installs to user profile. The 
> ProgramMenuFolder property should be getting set to the 'all users'
> start menu if you have Package/@InstallScope="perMachine" (which you 
> do).
>
> But let's take a step back. Your StartMenuDir component only has two
> things: the RemoveFolder, and the registry key. The shortcut directory 
> is not in that component, because directories don't "belong to 
> components" to begin with, they are created when needed (in this case 
> when creating the shortcut). Is it normal/correct to have the 
> RemoveFolder in a different component? Is there any reason why it 
> can't go to the main component with the .exe and the shortcut? If so, 
> you won't need the registry key at all.
>
> Perhaps ICE38 is getting confused and saying the component installs to 
> a user profile because it doesn't install anything at all :)

OK, I'm now hitting a very similar problem myself...

I made a simple installer with a single .exe, an advertised shortcut, and a 
RemoveFolder for the start menu folder where the shortcut is, all in the same 
component, which is what I suggested in my previous email. That worked just 
fine, with no need for a registry key... until I had to add a second executable 
and shortcut. The whole idea breaks down if I have multiple shortcuts. I can't 
put it in one of the components, because later I may want to put the two 
exe+shortcut components in different features, so any of the two components may 
not be installed.

So I moved the RemoveFolder to a different component, inside the Directory 
matching the folder being removed. "ICE38: component installs to user profile, 
must have HKCU registry key as keypath." I'm pretty sure I can now say I feel 
your pain :)

If the ALLUSERS property is set to 1, ProgramMenuFolder is set to the "all 
users" start menu, which is *not* in the user profile, and I think everything 
would be safe (I couldn't even override it by setting
ALLUSERS=0 in the command line). Isn't ICE38 wrong in this case?

--
Nicolás

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register > 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to