文章編號: 555184 - 上次校閱: 2004年8月24日 - 版次: 1.0

BUG: 升級時執行自訂動作是舊版 Visual Studio . NET 安裝程式專案

作者?Carlos Quintero MVP
系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

當您安裝新版的應用程式其安裝程式包含自訂安裝動作, 安裝程式 doesn?t 執行自訂安裝動作的新版本但其中一項前一版, 是被取代。

徵狀

當您執行安裝程式由 Visual Studio . NET 安裝程式專案要升級的應用程式所建立並安裝程式包含自訂安裝動作, 安裝程式 doesn?t 執行自訂安裝動作的新版本但其中一項前一版, 是被取代。

發生的原因

這似乎是錯誤的 Visual Studio . NET。

其他相關資訊

重現問題的步驟:
?
- 建立使用 VB . NET 新的 Visual Studio . NET 2003 Class Library 專案並命名為 ClassLibrary 1。
?
- 將參考加入至 System . Windows . Forms . dll 和 System . Configuration . Install . dll 組件。
?
> AssemblyVersion("1.0.0.0") - 在 AssemblyInfo . vb 檔案, 變更: 組件 < 要 > AssemblyVersion("1.0.*"): 組件 <
?
- 在 AssemblyInfo . vb 檔, 加入 AssemblyFileVersion("1.0.0.0"): 組件 < >
?
- 修改 Class 1 類別的類別程式庫, 讓它看起來像是這樣:
?
<System.ComponentModel.RunInstaller(True)> _
public Class 1 類別
??? 繼承 System.Configuration.Install.Installer
?
??? 公用覆寫子安裝為 System . Collections . IDictionary (ByVal stateSaver)
??????? System . Windows . Forms . MessageBox . Show (" 安裝從 1.0 ")
??? End Sub
?
??? 覆寫公用 Sub uninstall(ByVal savedState as System.Collections.IDictionary)
??????? System.Windows.Forms.MessageBox.Show("Uninstall from 1.0")
??? End Sub
?
使用類別
?
- 新增資料安裝專案加入至方案命名為 Setup 1。
?
- 在 [ 方案總管 ] 中的方案節點上按一下滑鼠右鍵, 選取組態管理員然後標示 [ 建置 ] 核取方塊的安裝專案。
?
- 在 [ 方案總管 ] 中的方案節點上按一下滑鼠右鍵, 選取 [ 專案相依性 ] 然後選取 Setup 1 專案, 取決於 ClassLibrary 1 專案。
?
在 [ 方案總管 ] - 選取安裝程式專案並在 [ 屬性 ] 視窗變更 RemovePreviousVersions 設為 True。
?
以滑鼠右鍵按 - 一下 [ 方案總管 ] 中的安裝程式專案、 選取 [ 內容 ] 以及變更從 「 Windows Installer 啟動載入器 " 啟動載入器設定為 " None "。
?
- 在檔案系統編輯器的安裝程式專案, 選取應用程式資料夾以滑鼠右鍵按一下 [ 加入專案輸出, 然後選取主要 ClassLibrary 輸出的 1、
?
- 在自訂動作編輯器的安裝程式專案, 於安裝 ] 節點按一下滑鼠右鍵, 選取 [ 加入自訂動作 ], 輸入到應用程式 ] 資料夾並選取 " (作用) Primary output from ClassLibrary 1 "
?
- 在自訂動作編輯器的專案安裝程式, 在解除安裝節點上按一下滑鼠右鍵, 選取 [ 加入自訂動作 ], 輸入到應用程式 ] 資料夾並選取 " (作用) Primary output from ClassLibrary 1 "
?
- 儲存所有變更並建置解決方案。
?
- 執行 Setup1.msi 安裝程式已建立其, 選取 " Just Me 」。 在某些時候, 您看到訊息 「 安裝 」 從 1.0 的安裝自訂動作。
?
> AssemblyFileVersion("2.0.0.0"): - 現在, 在 AssemblyInfo . vb 檔案, 變更組件 < 要 > AssemblyFileVersion("1.0.0.0"): 組件 <
?
- 在 Class 1, 變更訊息, 以從 2.0 " 安裝 " 和 「 解除安裝 」 從 2.0
?
在 [ 方案總管 ] - 選取安裝程式專案並在 [ 屬性 ] 視窗變更為 2.0.0 版本。 您會提示您可以變更產品代碼與套件代碼。 按一下 [ 是 (Yes)], 以接受變更。
?
- 儲存所有變更並重新建置解決方案。
?
- 執行其已建立, 安裝 Setup1.msi 程式再次選取 " Just Me " 並使用相同的目的地資料夾。 在某些時候, 您得到訊息 " Uninstall 從 1.0 " 的解除安裝的第一個版本, 這是正確的自訂動作。 但是, 稍後會將訊息從 1.0 " 安裝 " 出現, 而非預期的 " 安裝從 2.0 "。
?
?

?

這篇文章中的資訊適用於:
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Professional Edition
關鍵字:?
kbpubmvp kbpubtypecca kbhowto KB555184 KbMtzh kbmt
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。如果您發現錯誤,並想要協助我們進行改善,請填寫本篇文章下方的問卷。
按一下這裡查看此文章的英文版本:555184? (http://support.microsoft.com/kb/555184/en-us/ )
Community Solutions Content社區解決方案內容免責聲明
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。