DotNetInstaller exe ファイルにラップされた msi インストーラーがあります。すべて正常に動作しますが、[追加と削除] ウィンドウからアンインストールしようとすると、.exe ファイルではなく .msi が実行されます。プロパティの値をuninstall_cmdparametersとして渡しているため、.exeを実行する必要があります。助けてください。
前もって感謝します。
DotNetInstaller exe ファイルにラップされた msi インストーラーがあります。すべて正常に動作しますが、[追加と削除] ウィンドウからアンインストールしようとすると、.exe ファイルではなく .msi が実行されます。プロパティの値をuninstall_cmdparametersとして渡しているため、.exeを実行する必要があります。助けてください。
前もって感謝します。
わかりました、このでたらめで4日間ほど苦労した後、私はついに何かを思いつきました.
インストールのファイナライズの前に C# カスタム アクションを実行してから、Uninstall[ProductCode] のレジストリ キーを更新します
。string productCode = session["ProductCode"];
Registry.SetValue(UNINSTALL_REGKEY + productCode, "UninstallString", "MsiExec.exe /x " + productCode + "DELFILES=TRUE", RegistryValueKind.String);
Registry.SetValue(UNINSTALL_REGKEY + productCode, "WindowsInstaller", 0, RegistryValueKind.DWord);
(注: WindowsInstaller の値は 0 に設定する必要があります。そうしないと、UninstallString の値が使用されません)
[プログラムの追加と削除] から製品を削除すると、変更した UninstallString を使用してアンインストールが実行されます。
同じ問題を抱えている他の人に役立つことを願っています。