2011-03-11 42 views
2

私たちのソフトウェアの最新バージョンは、WiX 3.5を使用してインストーラを作成しています。以前のバージョンのインストーラは、InstallAware 8を使用して作成されました。インストール中に古いバージョンを削除したいのですが、InstallAwareは通常のRemoveExistingProductsメソッドが動作しないような不思議なことをします。 msiexec/x {PRODUCTCODE}もありません。RemoveExistingProductsのアンインストール.msiの場所の指定

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

答えて

2

ソースのプロンプトを避けるためのいくつかのルールに違反しているようです。 these recommendationsが役立つかどうかを確認してください。

+0

具体的には、MsiSourceListAddSource関数は、プロンプトにその場所を指定するとトリックを行う場合に役立つようです。 –

0

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

1

この回答に加えて、「different ways to uninstall an MSI」も確認してください。

これはHEREのUninstallString \マイクロソフト\ Windowsの\ CurrentVersionの\アンインストール\ YOUR GUID \

HKEY_LOCAL_MACHINE \ソフトウェア:古いセットアップのために定義されたカスタムアンインストール文字列がある場合に

チェックはで見るためにコントロールパネルでアプレットの追加/削除が使用する最も一般的な場所ここでアンインストール文字列が見つかった場合は、新しいインストールを実行する前にカスタムアクションでアンインストールを実行できます。ちょっと醜いですが、私はsetup.exeでインストールプロセスを実行する方が好きです。

もう一つの場所は次のとおりです。

HKEY_LOCAL_MACHINE \ソフトウェアのMicrosoft \ Windowsの\ CurrentVersionの\インストーラ\ UserDataを\ S-1-5-18 \製品

\ここでは、パックのGUIDを見つけます。それぞれのGUIDを確認して、InstallSourceについては、「InstallProperties」の下を確認してください。このパスは、インストールエンジンがアプリケーションをアンインストールするのに必要なMSIファイルを検索する検索パスです。

関連する問題