2011-09-07 159 views
15

我有一個簡單的Web設置項目從可部署項目讀取。Visual Studio:如何自動卸載以前安裝的版本?

即使我已經安裝設置爲DetectNewerInstalledVersionfalse我總是說以前安裝存在煩人警告框,我需要去Control Panel,找到要刪除的軟件它...

有沒有辦法在新的安裝對話框中添加一個腳本,可以說是A previous version was found, press NEXT to uninstall it.

+0

我發現這個問題和Cosmin Pirvu的回答很有幫助,但是我遇到了InstallExecuteSequence問題,這個問題在這裏解決:[Visual Studio 2010 - RemovePreviousVersions](http://stackoverflow.com/questions/4210294/visual-studio -2010-removepreviousversions) –

回答

7

在我的情況下,我發現安裝項目不是配置管理器的一部分。 因此,在解決方案重建時沒有重新設置,並且沒有生成新版本和ProductCode的設置文件。

解決方案只需右鍵單擊安裝項目並單擊重建。

希望這有助於未來的讀者:)

23

如果您增加產品版本並更改包裝代碼,舊版本會自動卸載。這需要在每次修改安裝項目並構建新軟件包時完成。

如果您保持相同的版本和產品代碼,舊的版本不能自動卸載。在您的新軟件包實際啓動之前,它們會被Windows Installer檢測到。所以你需要手動卸載它們。

+0

我可以保證版本正在使用版本語法,並且已被更新,例如從1.0.0050到1.0.0051。 'UpgradeCode'和'ProductCode'也會自動更新。 – balexandre

+3

UpgradeCode應該保持不變,只有ProductCode應該改變。另外,由於您收到了您提到的消息,因此您未增加產品包版本並更改產品代碼。你在哪裏做出改變? –

+0

我糾正這一點,'ProductCode'是唯一一個改變。我使用安裝項目中的屬性窗口。 – balexandre

2

答案是不使用已經集成在Visual Studio安裝項目。我有完全相同的問題:它不會刪除以前的版本,即使我升級版本,將其設置爲刪除以前的版本,檢查以前的版本和重建,我可以安裝,但文件沒有更新。這裏有一些很好的工具,請查看bitrock,inno setup或wix。

此外,Visual Studio 2010是安裝項目支持的最後一個版本。它不包括在2012年

+2

您還需要更改項目中的Assembly版本 – rageit

0

創建一個.bat文件
寫這樣的代碼:

wmic product where name="SetupProgramName" call uninstall /nointeractive 
cd Debug 
setup.exe 

放入安裝目錄文件。

相關問題