WiXとは何か?キーパス' 属性はどのような意味ですか? 特に、次の場合にはどのように適用されますか?
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\CompName\AppName"
Type="string" Value="" KeyPath="yes" />
</Component>
ベストアンサー1
としてロブ・メンシングによる説明:
コンポーネントの KeyPath は、Windows インストーラーがコンポーネントがマシン上に「存在する」かどうかを判断するために使用する単一のリソースです。
つまり、Windows インストーラーは、コンポーネントをインストールするかどうかを決定するときに、まずキーパス リソースが既に存在するかどうかを確認します。存在する場合、コンポーネント内のリソースはいずれもインストールされません。
キーパス リソースの存在により、MSI を「修復」するときにコンポーネントが破損しているか、または失われているかどうかも判断されます。
キーパス リソースがバージョン管理されたファイルである場合、Windows インストーラーは、同等以上のバージョンのファイルが見つかった場合にのみ、そのファイルが存在すると見なします。
特定の例では、アンインストール時にフォルダを削除するコンポーネントがあります。このコンポーネントはインストール済み指定されたレジストリキーがまだ存在しない場合は、レジストリキーを追加してキーパスとして使用します。キーパスとして使用できないリソースをインストールするコンポーネントのキーパスが必要な場合、レジストリキーを追加するのが一般的な方法です。ショートカット。