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

Mit*_*tul 2 installation windows-installer wix

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

我写了下面的代码。

<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>
Run Code Online (Sandbox Code Playgroud)

我该如何纠正它?

Hil*_*lle 5

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

  1. 双重使用标识符(在本例中INSTALL_DE
  2. 键名错误;不要HKEY_CURRENT_USER为您的搜索路径添加前缀,Root="HKCU"请自行处理
  3. 缺少“ !”,在CDATA

写例如

<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>
Run Code Online (Sandbox Code Playgroud)