1

状況は次のとおりです。

インストール中に呼び出されるいくつかのカスタム アクションが定義された特別なアセンブリを使用する、.NET アプリケーション用に作成されたセットアップ プロジェクトがあります。セットアップ プロジェクトは、マシンに古いバージョンのアプリケーションが既にインストールされている場合、以前のインストールを検出して自動アップグレードを行うように設定されています。

私がしたいのは、インストール プロセス中にカスタム アクションを介して、既にインストールされているバージョンをアップグレードしているかどうかを検出することです。これが正しい場合は、どのバージョンからアップグレードしているか (以前にインストールされた MSI パッケージのバージョンである可能性があります)。

インストール中のさまざまな時点 (インストール、コミット、アンインストール) でデバッガーに侵入しようとしましたが、いずれの場合も、古いバージョンは既にディスクから削除されていたため、odl exe にアクセスしてアセンブリ バージョンを読み取ることができませんでした。それ。

このようなことは可能ですか?それとも、カスタム アクションが呼び出された時点で既に手遅れですか?

4

1 に答える 1

0

残念ながら、これは VS Setup プロジェクトで直接行うことはできません

ただし、Orca を使用することもできます -- 'RemoveFiles' の前に DetectOldVersionCA を再配置するか、または -- 最良の決定: 同じ UpgradeCode を使用して 'Upgrade' テーブルに行を追加し、バージョンを VersionMin から VersionMax に移動し、'ActionProperty を入力します。 ' 古いバージョンのプログラムが見つかった場合に設定される (OLDFOUND) のようなプロパティ名

于 2012-10-23T16:58:39.133 に答える