1

新しいMSIのインストール中に、既存のバージョンのMSIを自動的にアンインストールしようとしています。

アップグレードコード、製品コード、セットアッププロジェクトのプロパティ(RemovePreviousVersions、DetectNewerInstalledVersion、versionsなど)、AssemblyInfoファイル(AssemblyFileVersion)からのDLLのバージョンなどを参照するN個の記事とブログを参照しました。

これらの情報を使用して、上記のタスクを実行するための1つの解決策があります。ただし、この場合、メンテナンスはこのアプローチの問題です。

同じタスクを実行するVisualStudioから観察したアクションがもう1つあります。これは私が必要とする活動を正確に実行し、同じように私は次のように質問を組み立てました。このクエリに光を当ててください...

VS2010のセットアッププロジェクトを右クリックして[インストール]アクションを実行し、(RemovePreviousVersionsプロパティの値に関係なく)古いバージョンの製品をアンインストールしてから、最新バージョンのインストールを続行します。MSIがインストールに使用されます(ただし、RemovePreviousVersionsプロパティはTRUEに設定されます)。以前のインストール手順でトリガーされたアクションまたはコマンドを知りたいだけなので、コードを使用して同じものを何らかの方法で適用できます

質問が明確でまっすぐ進むことを願っています..入力があれば教えてください..100万人前に感謝します

4

1 に答える 1

1

「インストール」アクションは、Windows インストーラー APIを使用して、現在のインストーラーを起動する前に古いバージョンを手動でアンインストールします。Windows インストーラーはメジャー アップグレードをサポートしているため、これを複製する必要はありません。自動アップグレードがうまくいかない場合は、どこかに問題があります。

Orcaを使用して両方の MSI パッケージをチェックし、UpgradeCode が同じかどうかを確認します。また、ALLUSERS プロパティは両方で同じ値を持つ必要があります。最後に、詳細なログを作成し、 FindRelatedProductおよびRemoveExistingProductsアクションを検索して、古いバージョンで何が起こるかを確認してください。

于 2012-09-06T07:19:25.727 に答える