组件testcomp隔离安装到用户的个人资料。 它必须使用HKCU下的注册表键值作为其的keyP

2019-08-31 15:29发布

我想复制一个文件在维克斯一个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>

Answer 1:

这是正确的。 Windows安装程序想要注册表项为每个用户组件的关键路径。 它与型材的企业部署广告的内容的工作方式有关。 解决方法是非常简单的:

<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 testcomp installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file
标签: wix