1. ホーム
  2. installation

[解決済み] wixの'KeyPath'属性とは何ですか?

2022-07-05 23:30:22

質問

Wix ' とは何ですか? キーパス ' 属性とは何ですか?特に、以下にどのように適用されるのですか?

<Component Id="ProgramMenuDir" Guid="*">
  <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
  <RegistryValue Root="HKCU" Key="Software\CompName\AppName" 
                 Type="string" Value="" KeyPath="yes" />
</Component>

どのように解決するのですか?

として はRob Menschingによって説明されています。 :

<ブロッククオート

コンポーネントの KeyPath は、Windows が使用する単一のリソースです。 Windows インストーラーが使用する単一のリソースです。 インストーラーが コンポーネントがマシンに存在するかどうかを判断するために使用する 1 つのリソースです。

これは、Windows Installer がコンポーネントをインストールするかどうかを決定するとき、まず keypath リソースがすでに存在するかどうかを確認することを意味します。存在する場合、コンポーネントのどのリソースもインストールされません。

keypath リソースの存在は、MSI を "repair" するときに、コンポーネントが破損しているか、またはなくなっているかを判断することにもなります。

keypath リソースがバージョン管理されたファイルである場合、Windows Installer は、同等またはより高いバージョンのファイルを見つけた場合にのみ、そのファイルを存在すると見なします。

この例では、アンインストール時にフォルダーを削除するコンポーネントがあります。このコンポーネントは インストールされます。 としてインストールされます。キーパスとして使用するレジストリキーを追加することは、キーパスとして使用できないリソースをインストールするコンポーネントのキーパスが必要な場合によく使われるトリックで、例えば ショートカット .