0

Visual Studio にいくつかの .vsix パッケージをインストールする WiX テクノロジに基づくカスタム インストーラーがあります。

このパッケージが既にインストールされている場合、インストーラーはパッケージの削除を提案します。削除プロセスが完了すると、インストーラーは終了します。

これは通常の動作ですが、終了する前に (オプションで) このパッケージを再インストールするようユーザーに提案する必要があります。インストーラーを 1 回実行するだけで、以前のバージョンをアンインストールし、新しいバージョン (または同じバージョン) をインストールするオプション モードを意味します。

これを WiX に実装する方法は?

4

1 に答える 1

0

カスタム インストーラーをもう少しスマートにできるのではないかと思います。正確な ProductCode がインストールされているかどうかを示す API (MsiQueryProductState など) や、バージョンを取得する方法 (MsiGetProductInfo) が多数あります。私の推測では、カスタム インストーラーは、既にインストールされているかどうかを確認せずにすべての MSI インストールを起動しているだけなので、削除のプロンプトが表示されます。

一般的な計画は、カスタム インストーラーが既にインストールされているものとバージョンを調べるために使用できるデータをいくつか用意し、それらをインストールしようとしているものと比較することです。それらの API を使用します。製品がすでにインストールされている場合は、インストールをスキップしてください。新しいバージョン (WiX MajorUpgrade 要素でビルドしたもの) がある場合は、それをインストールするだけで、既存の古いバージョンが置き換えられます。

カスタム インストーラーによって削除された製品を、再インストールしてユーザーに削除するように促すことで、その製品を自動的に再インストールするような WiX は考えられません。

于 2014-12-28T18:37:12.730 に答える