Dot-Net

.NET MSI 安裝項目 - 覆蓋以前的版本

  • October 22, 2011

我有一個安裝 Windows 服務的 MSI 安裝程序項目。

這篇文章最好地描述了我的版本編號方法:AssemblyVersion、AssemblyFileVersion 和 AssemblyInformationalVersion 之間有什麼區別?

我沒有更改我的安裝項目的版本,因為它沒有改變,並且在這樣做時我遇到了太多問題。

我已經使用以下程序集版本安裝了我的服務

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

我剛剛為這個版本建構了一個 MSI 安裝程序:

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

當我執行 MSI 時,它告訴我需要解除安裝以前的版本。

我該如何解決這個問題?我最終想做的是:

  1. 安裝 MSI
  2. 安裝(重新:升級到)覆蓋先前版本(提示或無提示)的另一個版本 我不想在安裝更新之前解除安裝。

我的安裝程序項目屬性是:

RemovePreviousVersions - True

InstallAllUsers - 真

DetectNewerInstalledVersion - 假

版本 - 4.3.0

我試過的:

  • 更新項目的程序集版本。但是,這會在“添加刪除程序”中創建相同產品的多個版本。不想要我想要的 Windows 服務
  • 更改安裝程序項目的版本號。但這會在嘗試安裝任何版本的 MSI 時產生很多錯誤。我什至收到警告說我正在安裝在網路驅動器上!(哇)。

任何幫助都會很棒!

謝謝。

在設置的設置項目屬性中,您需要為每個版本增加“版本”屬性,同時保持相同的升級程式碼。

當您增加版本時,它會提示您是否要更改 ProductCode,回答“是”。

您還必須將用於刪除先前版本和檢測新版本的屬性設置為 true。

引用自:https://stackoverflow.com/questions/7856454