2011-10-21 8 views
8

WindowsサービスをインストールするMSIインストーラプロジェクトがあります。.NET MSIインストールプロジェクト - 以前のバージョンを上書きする

私のバージョン番号方式が最良のこの記事で説明されています。それが変更されていない、そしてそれをやったときに、私はあまりにも多くの問題を持っていたとしてWhat are differences between AssemblyVersion, AssemblyFileVersion and AssemblyInformationalVersion?

私は私のインストールプロジェクトのバージョンを変更しておりません。

[assembly: AssemblyVersion("4.3")] 
[assembly: AssemblyFileVersion("4.3.1.0")] 

私はMSIを実行すると、それは私が必要と言われます:私はちょうどこのバージョンにMSIインストーラを建て

[assembly: AssemblyVersion("4.3")] 
[assembly: AssemblyFileVersion("4.3.0.0")] 

は、私はすでに次のアセンブリバージョンと私のサービスがインストールされています以前のバージョンをアンインストールします。

どうすればこの問題を回避できますか?私は最終的にやりたいことはある:(:へのアップグレード再)(プロンプトまたはプロンプトなし)以前のバージョンを上書きする別のバージョン

  1. はMSI
  2. をインストールします。私はアップデートをインストールする前にアンインストールする必要はありません。

私のインストーラプロジェクトのプロパティは次のとおりです。

RemovePreviousVersionsを - 真の

InstallAllUsers - 真

DetectNewerInstalledVersion - 偽

バージョン - 4.3.0

私が試したこと:

  • プロジェクトのアセンブリバージョンを更新します。ただし、これにより、[プログラムの追加と削除]に同じ製品の複数のバージョンが作成されます。 Windowsサービスが欲しいのではない
  • インストーラプロジェクトのバージョン番号を変更してください。しかし、MSIの任意のバージョンをインストールしようとすると、多くのエラーが発生します。私はネットワークドライブにインストールしているという警告も受けました! (ワオ)。

どんな助けもロッキン!

ありがとうございました。

+0

私は常にアップグレードコードを保持し、手動でアンインストールする必要があり、インストーラプロジェクトのバージョンを変更しようとしています。それは私がこれまでに出てきた最高のものです。あなたと同様の要件のセットから始めます。 –

答えて

5

セットアップのセットアッププロジェクトのプロパティで、各バージョンの "Version"プロパティをインクリメントして、同じUpgradeCodeを維持する必要があります。

バージョンを増やすと、ProductCodeを変更するかどうかを確認するメッセージが表示されます。「はい」と答えてください。

また、以前のバージョンを削除し、新しいバージョンがtrueに設定されていることを検出するためのプロパティも必要です。

+0

ありがとうございました - それはうまくいくようでした。 –

+0

ProductCodeを変更するかどうか尋ねられたときに、同じアップグレードコードを保持することは、「はい」の選択とは対照的であるように見えます。これは矛盾ですか? – sweetfa

関連する問題