开发者

Setting particular registry value in Windows 7 with WiX

开发者 https://www.devze.com 2023-02-13 10:16 出处:网络
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

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消