インストーラをアンインストール/削除する際にインストーラがレジストリキーを復元/書き込みする必要があります。これを実現するには、カスタムアクションを使用してアンインストール時に.cmdファイルを呼び出します。注Wix:アンインストール時にレジストリキーを追加する
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="RegOnUninstall" Language="1033" Version="1.0.0.0" Manufacturer="Testing" UpgradeCode="3dbec931-5475-40b3-a002-824c09aad36c">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="RegOnUninstall" Level="1">
<ComponentRef Id="RSS" />
</Feature>
<Property Id="WixQuietExecCmdLine" Value=""[#RSS.cmd]" -RSS"/>
<CustomAction Id="SS" BinaryKey="WixCA" DllEntry="WixQuietExec" Execute="deferred" Return="check"/>
<InstallExecuteSequence>
<Custom Action="SS" Before="RemoveFiles">Installed AND REMOVE</Custom>
</InstallExecuteSequence>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="RegOnUninstall" >
<Component Id="RSS" Guid="*" >
<File Id="RSS.cmd" KeyPath="yes" Source="D:\Scripts\RestSS.cmd"/>
</Component>
</Directory>
</Directory>
</Directory>
</Fragment>
:カスタムアクションは、この.CMDファイルを呼び出すスニペットれ
set SSKey=HKLM\Software\MyProduct\Installed Modules\TestModule
reg.exe add "%SSKey%" /v AppName /d TestModule /f /reg:32
reg.exe add "%SSKey%" /v Type /t REG_DWORD /d 7 /f /reg:32
reg.exe add "%SSKey%" /v AppName /d TestModule /f /reg:64
reg.exe add "%SSKey%" /v Type /t REG_DWORD /d 7 /f /reg:64
ここ:ここではそのコードがこのカスタムアクションはWixUtilExtensionです。
インストーラは昇格特権を使用していますが、このスクリプトはHKLMに書き込むことができません。このため、インストーラはマシンからアンインストールできません。
管理者権限を持つコマンドプロンプトでこの.cmdスクリプトを実行すると正常に動作します。
私はManaged Custom Actionを書き込もうとしましたが、同様の問題、つまりHKLMに書き込めませんでした。
私の主な目的は、アンインストール時にレジストリキーを書き込むことです。
すべてのヘルプは本当にいただければ幸いです.... おかげ
はい、両方のハイブ –