Dot-Net
.NET MSI 安裝項目 - 覆蓋以前的版本
我有一個安裝 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 時,它告訴我需要解除安裝以前的版本。
我該如何解決這個問題?我最終想做的是:
- 安裝 MSI
- 安裝(重新:升級到)覆蓋先前版本(提示或無提示)的另一個版本 我不想在安裝更新之前解除安裝。
我的安裝程序項目屬性是:
RemovePreviousVersions - True
InstallAllUsers - 真
DetectNewerInstalledVersion - 假
版本 - 4.3.0
我試過的:
- 更新項目的程序集版本。但是,這會在“添加刪除程序”中創建相同產品的多個版本。不想要我想要的 Windows 服務
- 更改安裝程序項目的版本號。但這會在嘗試安裝任何版本的 MSI 時產生很多錯誤。我什至收到警告說我正在安裝在網路驅動器上!(哇)。
任何幫助都會很棒!
謝謝。
在設置的設置項目屬性中,您需要為每個版本增加“版本”屬性,同時保持相同的升級程式碼。
當您增加版本時,它會提示您是否要更改 ProductCode,回答“是”。
您還必須將用於刪除先前版本和檢測新版本的屬性設置為 true。