2

アップグレードを実行できるように、インストールの場所を取得しようとしています。WiX インストーラーを使用していますが、WiX 独自のアップグレード メカニズムを使用できません。これは、構成ファイルを破棄し、カスタムで発生するチェックを行わないためです。アクションの UI。

.msi を呼び出すブートストラップがあり、その .msi 内でパラメーターを簡単に取得および設定できます。

この状況では、.msi が実行されてすべてが破棄される前に、既知の動的な GUID からブートストラップ内のインストールのファイルの場所に移動するにはどうすればよいでしょうか。

NB インストール間で構成ファイルが同じままであるとは想定できません。または、アンインストールによってファイルが強制終了されるよりも速くファイルを取得できるとは想定できません。

4

1 に答える 1

3

アップグレード中にやりたいことを実行できるように、アップグレードのメカニズムをかなり制御できます。特に、新しい MSI に構成設定を読み取らせ、それらを構成ファイルに書き戻します (新しい MSI は、古い構成ファイルが削除される前に確実に実行されます)。これにより、インストールがべき等になります(理想的です)。

あなたの質問に答えるために、あなたが望むことをする方法はたくさんあります。以下は、私がおそらくそれについて行く方法です:

  1. ARPINSTALLLOCATIONと書いてください。私のこの古いブログ エントリに詳細があります。

  2. 古い MSI のがわかっている場合はProductCode、手順 3に進みます。まだわかっていない場合は、MSIProductCodeの を使用しUpgradeCode(アップグレードを行っている場合は、それがわかります)、::MsiEnumRelatedProducts()を使用して検索します。ProductCode以前にインストールした MSIの

  3. MSIがわかっている場合は、::MsiGetProductInfo()ProductCodeを呼び出してプロパティを要求します。INSTALLPROPERTY_INSTALLLOCATION

于 2013-03-12T20:43:48.953 に答える