组件testcomp安装到用户配置文件。它必须使用HKCU下的注册表项作为其KeyPath,而不是文件

时间:2013-04-20 11:17:56

标签: wix

我想在WiX的Doucments位置下复制一个文件。但它给出了警告:

  

组件testcomp安装到用户配置文件。它必须使用HKCU下的注册表项作为其KeyPath,而不是文件。

我的代码:

<Directory Id='PersonalFolder' Name='MyDocuments'>
   <Component Id='testcomp' Guid='08C288B6-D8E0-4036-9CEB-E5F616AC6B5C'>
      <File Id='doc_code_file1' Name='doc_code_file1' DiskId='1'
            Source='Personalfolder\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets\SimpleMvvm\mvvmcommand.snippet' KeyPath='yes'></File>
   </Component>
</Directory>

2 个答案:

答案 0 :(得分:21)

这是对的。 Windows Installer希望将注册表项作为每用户组件的关键路径。它与配置文件在企业部署中使用广告内容的方式有关。修复非常直接:

<Directory Id='PersonalFolder' Name='MyDocuments'>
   <Component Id='testcomp' Guid='08C288B6-D8E0-4036-9CEB-E5F616AC6B5C'>

      <RegistryValue Root='HKCU' Key='Software\Manufacturer\Product'
                     Name='Something (I like to use InstallFolder)'
                     Value='Something (I like to use [INSTALLFOLDER]'
                     Type='string'
                     KeyPath='yes' />

      <File Id='doc_code_file1' Name='doc_code_file1' DiskId='1'
            Source='Personalfolder\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets\SimpleMvvm\mvvmcommand.snippet' />
   </Component>
</Directory>

注意:添加的每用户注册表项,并标记为KeyPath='yes'。后者没有明确的必要,因为它是Component中的第一个资源,默认情况下将被标记为关键路径,但是使用关键路径显式更有效。

答案 1 :(得分:0)

如果您选中Suppress ICE validation选项,Visual Studio将忽略这些验证

只需遵循以下路线: YourProject-> Properties-> Tool Settings

ICE validation