2

ソフトウェアの最新バージョン用に WiX 3.5 を使用してインストーラーを作成しています。以前のバージョンのインストーラーは InstallAware 8 を使用して作成されました。インストール中に古いバージョンを削除したいのですが、InstallAware が奇妙なことを行うため、通常の RemoveExistingProducts メソッドが機能しません。msiexec /x {PRODUCTCODE} も同様です。

RemoveExistingProducts を実行すると、古いインストールの .msi ファイルの場所を尋ねるダイアログが表示されます。レジストリでその場所を見つけることができ、ダイアログにその場所を入力すると、アンインストールは正常に機能します。ただし、ダイアログが表示されないようにしたいのですが、RemoveExistingProducts にどこにあるかを伝える方法はありますか?

4

3 に答える 3

2

ソースのプロンプトを回避するといういくつかの規則に違反しているようです。これらの推奨事項が役立つかどうかを確認してください。

于 2011-03-11T15:11:47.783 に答える
1

この回答に加えて、 「 MSI をアンインストールするさまざまな方法」という回答も確認してください。

チェックインして、古いセットアップ用に定義されたカスタム アンインストール文字列があるかどうかを確認します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YOUR GUID HERE\UninstallString

これは、コントロール パネルの [追加と削除] アプレットで使用される最も一般的な場所です。アンインストール文字列がここにある場合は、新しいインストールを実行する前に、カスタム アクションを介してアンインストールを実行できます。少し醜いですが、setup.exe を介してインストール プロセスを実行することをお勧めします。

別の場所は次のとおりです。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products

ここには、パックされた GUID があります。各 GUID を確認し、 InstallSourceの「 InstallProperties」を確認します。このパスは、インストール エンジンがアプリケーションのアンインストールに必要な MSI ファイルを検索する検索パスです。

于 2014-05-22T20:15:05.477 に答える
0

キーが 1 に設定されている場合は、.msi がキャッシュされていると思われる場所を確認HKLM\Software\Microsoft\Windows\CurrentVerison\Uninstall\<GUID_or_product_name>\WindowsInstallerする必要があります。HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\<mangled_guid>\InstallProperties\InstallSource基本的に、InstallSource を検索するときは、正しいレジストリの場所を見ていることを確認してください。

于 2011-03-11T15:44:11.200 に答える