The following code works in Windows 7 x86, but not x64. What's the difference and how do I go about setting this key? It also works when I install it on Windows XP having changed the feature to install on Windows XP.
<Component Id="WallpaperPermW7" Guid="{c6427f8f-ce18-4675-9ea4-3292c18c897f}" Feature="W7Feature">
<RegistryValue Id="WallpaperRegW7" Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background" Name="OEMBackground" Value="1" Type="integer" KeyPath="yes">
</Component>
EDIT
Thanks Yan, I can see the registry going into the WoW folder now,
But, I want it to ins开发者_如何学运维tall it in the same path for both 64 and 32 bit systems if I add the Win64="yes" attribute then it won't install on 32 bit systems will it?
Is there a way around not having two packages?
I take it your package is 32-bit, and hence on 64-bit systems the path you specify in the "key" attribute of RegistryValue element is mapped to a different hive:
Software\Wow6432Node\Microsoft...
instead of
Software\Microsoft...
That's why you don't see your value in place you expect it to be.
In order to correct this you'll have to mark your component as 64-bit (Win64='yes'), but this will mean that the entire package is 64-bit, and as a result you'll have to author a pair of packages, one for 32-bit, one for 64-bit... Probably, you can revise your requirements to avoid this.
精彩评论