古いバージョンにインストールできない展開プロジェクトがあります。 msiファイルには、最初に[プログラムの追加と削除]からプログラムをアンインストールするように指示されています。これは優れたユーザーエクスペリエンスではありません。インストーラーが最初にソフトウェアを削除してから新しいバージョンをインストールするようにするにはどうすればよいですか?
これは注意が必要です。次の手順を実行する必要があります。
3番目の手順を正しく行わないと、インストーラーは古いファイルをインストールして保持します。コンテンツを変更した場合は、すべてのファイルのファイルバージョンが新しい必要があります。
私はいくつかのシナリオを試しました、多分これは誰かが時間を節約するのを助けるでしょう
アセンブリバージョンが変更され、プロジェクトインストーラーのバージョンが変更された場合(ProductCode Guidも変更されます)->アプリが既存のものの上にインストールされます-> dllとexeバージョンが更新されます->インストール先のパスが異なる場合、既存の最初にインストールされたプロジェクトファイルが削除されますそれらがインストールされた場所から。 (およびそれ以降に作成されたファイルは残ります)
アセンブリバージョンが変更され、プロジェクトインストーラーのバージョンが変更された場合(ProductCode Guidが変更されていない場合)->ユーザーはアプリケーションを手動で削除するように求められます->先に進んでコントロールパネルから削除すると、アプリがインストールされ、dllとexeが更新されます新しいバージョンへ
アセンブリバージョンのみが変更された場合、またはプロジェクトインストーラーバージョンのみが変更された場合(ProductCode Guidは変更されません)->ユーザーはアプリケーションを手動で削除するように求められます->先に進んで最初にコントロールパネルから削除した場合、アプリをインストールしてdllとexeは新しいバージョンに更新されます
プロジェクトインストーラーのバージョンのみが変更された場合(ProductCode Guidも変更されます)-> MSIはインストールプロセスを実行しますが、dllとexeはバージョンを変更しません-それらはアセンブリバージョンに従っており、同じアセンブリビルドバージョンのファイルに置き換えられます-> IFインストール先のパスが異なり、最初にインストールされた既存のプロジェクトファイルがインストールされた場所から削除されます。 (それ以降に作成されたファイルはすべて残ります)
プロジェクトインストーラーのバージョンが変更され(ProductCode Guidも変更されます)、アセンブリバージョンがインストール済みバージョンよりも低い場合->インストールが開始され、エンドユーザーに古いバージョンとしてインストールが失敗したことが通知されます。
セットアッププロジェクトのプロパティを設定しますRemovePreviousVersions True
ただし、両方のセットアップアプリケーションで同じpgradeCodeを使用する必要があります
新しいバージョンをインストールした後、古い製品が同じままになることがあります。
RemoveExistingProductsのシーケンス番号を変更する必要があります。これは、InstallValidateアクションとInstallInitializeの間でスケジュールする必要があります。あなたはORCAによってこれを行うことができます
Ex InstallValidate = 1400の場合InstallInitialize = 1500
次に、RemoveExistingProducts = 1450