インストール後に特定のレジストリ値が存在することをアサートしたいので、次のコンポーネントを追加しました。
<Component Id="RegistryEntryContextMenuOdt" Guid="4BA5BA24-4F65-4BDF-99EB-CB4B947F31A9" DiskId="1" KeyPath="yes">
<RegistryKey Id="RegKeyOdt" Root="HKCR" Action="create" Key=".odt">
<RegistryValue Type="string" Value="openDocument.WriterDocument.1" />
</RegistryKey>
</Component>
キー/値は、インストール前にすでに設定されている場合があります。ただし、値が特定の値に設定されていること、つまり値が上書きされることを望んでいます。
私の問題は、製品がアンインストールされると、この値が常に削除されることです。ただし、インストーラーによって追加された場合にのみ、値を削除したいと考えています。インストーラーが値を変更しただけの場合は、以前の値を復元する必要があります (または、これが不可能な場合は、値をそのままにしておく必要があります)。
アンインストール時にキー自体は削除されないことに注意してください。要素に指定Action="create"
したため、これは正しく機能しているようです。RegistryKey
RegistryValue
インストール時に値を作成するが削除しない同様の設定はありますか?
更新: HKCR の下の両方のレジストリ キーは、マシン全体の設定です。つまり、レジストリの HKLM\SOFTWARE\Classes ブランチに由来します。