如果注册表项 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>
如何纠正它?
最佳答案
按照您的示例代码尽可能接近,我发现三个问题:
- 双重使用 identfier(在本例中为
INSTALL_DE
) - key 名称错误;不要在搜索路径中添加
HKEY_CURRENT_USER
前缀,Root="HKCU"
会处理它 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>
关于wix - WiX 中基于注册表项值设置的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25363679/