繁体   English   中英

WiX MultiString注册表项

[英]WiX MultiString registry keys

我尝试将兼容性助手的注册表项添加到wix设置中,如下所示:

<File Id="File1.exe" Name="File1.exe" LongName="File1.exe" Source="..\Binaries\File1.exe" DiskId="1" />
<File Id="File2.exe" Name="File2.exe" LongName="File2.exe" Source="..\Binaries\File2.exe" DiskId="1" />
<File Id="File3.exe" Name="File3.exe" LongName="File3.exe" Source="..\Binaries\File3.exe" DiskId="1" />
<Registry Root="HKLM"
          Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant"
          Name="ExecutablesToExclude"
          Type="multiString"
          Action="append">
    <RegistryValue Action="append" Value="[File1.exe]" />
    <RegistryValue Action="append" Value="[File2.exe]" />
    <RegistryValue Action="append" Value="[File3.exe]" />
</Registry>

但是在安装时不会生成任何密钥。 我错过了什么还是做错了什么? 我从这个问题和wix文档中获得了我正在做的事情的详细信息。

更新:语法有点不同,我想是因为我指出的问题使用了不同版本的WiX。 我使用的语法是WiX 2唯一接受的语法,并且该wix文件构建良好-只是不会生成新的注册表项。


更新:我误诊了问题; Wow6432bit正常工作,但是将值放在注册表的Wow6432bit节点中,因为包含的组件没有属性Win64="yes"

据我所知,WiX2中的RegistryValue元素没有属性。 我想知道您的样本如何被编译而不会出错...

无论如何,尝试像这样重写您的Registry元素:

<Registry Root="HKLM"
          Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant"
          Name="ExecutablesToExclude"
          Type="multiString"
          Action="append">
    <RegistryValue>[File1.exe]</RegistryValue>
    <RegistryValue>[File2.exe]</RegistryValue>
    <RegistryValue>[File3.exe]</RegistryValue>
</Registry>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM