17

WiX のドキュメントの場所にファイルをコピーしたいと思います。しかし、それは警告を出します:

コンポーネント 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>
4

2 に答える 2

27

そのとおりです。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'。後者は、デフォルトでキー パスとしてマークされるコンポーネント内の最初のリソースであるため、明示的に必要ではありませんが、キー パスを明示的に指定した方がよい場合もあります。

于 2013-04-20T13:53:02.337 に答える