Visual Studio打包(Windows Installer),你不知道的RemovePreviousVersions 屬性


用MS VS打包程序,有個細節有點坑爹

寫出來給大家看看

一般來說MSDN都這么解釋

 

RemovePreviousVersions 屬性的設置如下所示:

 

設置

說明

False

安裝程序不檢查是否有早期版本。

True

安裝程序檢查是否有早期版本;一經發現,便會立即將其卸載。

但實際上:

 

 

指定安裝程序在安裝期間是否移除應用程序的早期版本。如果此屬性設置為 True,並且在安裝時檢測到了早期版本,則將調用以前版本的卸載功能。

安裝程序檢查“UpgradeCode”“ProductCode”屬性,以確定是否應移除早期版本。新舊兩種版本的 UpgradeCode 必須相同;ProductCode 必須不同。

如果已在應用程序的安裝項目中同時設置了安裝和卸載自定義操作,而且已在 Visual Studio 2005 中啟用了“RemovePreviousVersions”屬性,則會在升級過程中卸載產品的早期版本。不過,此行為在 Visual Studio 2008 中做了如下更改:

在 Visual Studio 2005 中,當從 v1.0.0 升級到 v1.0.1 時,按如下方式調用自定義操作:

v1.0.0 custom action Uninstall()

v1.0.1 custom action Install()

在 Visual Studio 2008 中,不會調用卸載操作,如下所示:

v1.0.1 custom action Install()

如果創建了依賴於舊行為的自定義操作,則需要針對新行為修改您的代碼。此行為更改只影響更新,不影響卸載。

 

所以,你要是用VS2008的話,RemovePreviousVersions 怎么設都沒用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM