25

古いバージョンにインストールできない展開プロジェクトがあります。msi ファイルには、最初に [プログラムの追加と削除] からプログラムをアンインストールするように記載されています。これは良いユーザー エクスペリエンスではありません。インストーラーが最初にソフトウェアを削除してから新しいバージョンをインストールするようにするにはどうすればよいですか?

4

5 に答える 5

28

これはトリッキーです。次の手順を実行する必要があります。

  1. [以前のインストールの削除] を True に設定
  2. 新しいバージョンの検出を True に設定します
  3. C# プログラムのバージョンは、デプロイごとに増やす必要があります
  4. インストーラーのバージョンを 1 つ上のバージョンに変更する必要があります。製品コードを変更するように求められます。[はい] を選択します。
  5. アップグレードコードを変更しないでください。同じにしてください。

3 番目のステップを正しく実行しない場合でも、インストーラーは古いファイルをインストールして保持します。コンテンツを変更した場合、すべてのファイルのファイル バージョンは新しいものでなければなりません。

于 2010-06-11T17:15:47.800 に答える
13

いくつかのシナリオを試してみましたが、これは誰かが時間を節約するのに役立つかもしれません

アセンブリ バージョンが変更され、プロジェクト インストーラーのバージョンが変更された場合 (ProductCode Guid も変更されます) -> アプリが既存のものの上にインストールされます -> dll と exe のバージョンが更新されます -> インストール先のパスが異なる場合、既存の最初にインストールされたプロジェクト ファイルが削除されますそれらがインストールされた場所から。(そしてそれ以降に作成されたファイルは残ります)

アセンブリ バージョンが変更され、プロジェクト インストーラーのバージョンが変更された場合 (ProductCode Guid の変更なし) -> ユーザーはアプリケーションを手動で削除するように求められます -> 最初にコントロール パネルから削除すると、アプリをインストールでき、dll と exe が更新されます新しいバージョンへ

アセンブリ バージョンのみが変更された場合、またはプロジェクト インストーラー バージョンのみが変更された場合 (ProductCode Guid は変更されません) -> ユーザーはアプリケーションを手動で削除するように求められます -> ユーザーが先に進み、最初にコントロール パネルから削除した場合、アプリをインストールし、dll とexeは新しいバージョンに更新されます

プロジェクト インストーラーのバージョンのみが変更された場合 (ProductCode Guid も変更されます) -> MSI はインストール プロセスを実行しますが、dll と exe はバージョンを変更しません - それらはアセンブリ バージョンごとであり、同じアセンブリ ビルド バージョンのファイルに置き換えられます -> IFインストール先のパスが異なる場合、最初にインストールされた既存のプロジェクト ファイルは、インストールされた場所から削除されます。(それ以降に作成されたファイルは残ります)

プロジェクト インストーラーのバージョンが変更され (ProductCode Guid も変更されます)、アセンブリのバージョンがインストールされているバージョンよりも低い場合 -> インストールが開始され、エンド ユーザーにインストールが古いバージョンとして失敗したことが通知されます。

于 2010-06-24T23:45:56.207 に答える
6

セットアップ プロジェクト プロパティを設定するRemovePreviousVersions True

ただし、両方のセットアップ アプリケーションで同じUpgradeCodeを使用する必要があります。

于 2010-06-11T17:17:02.850 に答える
0

新しいバージョンをインストールした後、古い製品が同じままになることがあります。

RemoveExistingProducts のシーケンス番号を変更する必要があります。Install Validate アクションと InstallInitialize の間でスケジュールする必要があります。これは ORCA で行うことができます

Ex InstallValidate=1400 InstallInitialize =1500 の場合

その後、RemoveExistingProducts = 1450

于 2013-12-10T05:43:42.220 に答える