更改由 WiX 设置的注册表项 [英] Changing registry entry set by WiX

查看:33
本文介绍了更改由 WiX 设置的注册表项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 WiX 的新手.我需要更改以下注册表设置元素:

I'm new to WiX. I need to change the following registry-setting element:

    <Component Id="BrowserEmulation" Directory="ApplicationProgramsFolder" Guid="*">
      <RegistryValue Root="HKCU" Key="Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" Name="MY_REG_ENTRY" Value="11000" Type="integer" KeyPath="yes"/>
    </Component>

以便注册表项安装在 HKEY_LOCAL_MACHINE 而不是 HKEY_CURRENT_USER 下.我尝试更改 Root 值和 Key 值:

So that the registry entry gets installed under HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER. I tried changing the Root value and the Key value:

    <Component Id="BrowserEmulation" Directory="ApplicationProgramsFolder" Guid="*">
      <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" Name="MY_REG_ENTRY" Value="11000" Type="integer" KeyPath="yes"/>
    </Component>

我也尝试删除 KeyPath 组件.但是当我尝试构建 .msi 时,出现以下错误:

I also tried removing the KeyPath component. But when I try to build the .msi I get the following error:

错误 LGHT0204:ICE38:组件浏览器仿真安装给用户轮廓.它的 KeyPath 注册表项必须属于 HKCU

error LGHT0204: ICE38: Component Browser Emulation installs to user profile. It's KeyPath registry key must fall under HKCU

我查看了 描述组件 KeyPaths 的 WiX 文档 但无法弄清楚如何解决这个问题.

I looked at the WiX docs that describe Component KeyPaths but wasn't able to figure out how to get around this.

推荐答案

Directory:看起来您需要从组件中取出 Directory 属性.也许尝试这样的事情:

Directory: Looks like you need to take out the Directory attribute from your component. Maybe try something like this:

<Component Feature="MainApplication">
  <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" Name="MY_REG_ENTRY" Value="11000" Type="integer" KeyPath="yes"/>
</Component>

<小时>

位数:还要注意 HKLM 中 32 位和 64 位注册表配置单元的问题:HKLM\SOFTWARE\WOW6432Node 等...请参阅此答案以了解更多详情.我已经内联了最重要的部分:


Bitness: Also be aware of the issue with 32-bit and 64-bit registry hives in HKLM: HKLM\SOFTWARE\WOW6432Node etc... Please see this answer for more details. I have inlined the most important part:

注册:

  • 64 位:HKEY_LOCAL_MACHINE\SOFTWARE
  • 32 位:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

64 位:也许您需要将组件标记为 64 位组件?为了写在HKEY_LOCAL_MACHINE\SOFTWARE下?:

64-Bit: Maybe what you need is to mark your component as a 64-bit component? In order to write under HKEY_LOCAL_MACHINE\SOFTWARE?:

<Component Feature="MainApplication" Win64="yes">
   <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" Name="MY_REG_ENTRY" Value="11000" Type="integer" KeyPath="yes"/>
</Component>

这篇关于更改由 WiX 设置的注册表项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆