基于注册表键值在WiX中设置的属性值

时间:2014-08-18 12:47:41

标签: wix installer windows-installer

如果注册表项HKEY_CURRENT_USER \ Control Panel \ International \ LocaleName的值为de-DE,我想将INSTALL_DE属性值设置为1。

我写了下面的代码。

<Property Id="INSTALL_DE">
    <RegistrySearch
        Id="NetFramework20"
        Root="HKCU"
        Key="HKEY_CURRENT_USER\Control Panel\International"
        Name="LocaleName"
        Type="raw" />
</Property>

<SetProperty Id="INSTALL_DE" After="AppSearch" Value="1">
    <[CDATA[INSTALL_DE="de-DE"]]>
</SetProperty>

如何更正?

1 个答案:

答案 0 :(得分:1)

尽可能接近您的示例代码,我发现了三个问题:

  1. 双重使用identfier(在本例中为INSTALL_DE
  2. 错误的密钥名称;不要在HKEY_CURRENT_USER前加上您的搜索路径,Root="HKCU"负责处理
  3. !
  4. 中缺少&#34; CDATA&#34;

    写例如。

    <Property Id="LOCAL_NAME">
        <RegistrySearch Id="NetFramework20"
                Root="HKCU"
                Key="Control Panel\International"
                Name="LocaleName"
                Type="raw" />
    </Property>
    
    <SetProperty Id="INSTALL_DE" After="AppSearch" Value="1">
        <![CDATA[LOCAL_NAME="de-DE"]]>
    </SetProperty>