組件於全域組件快取或 SxS 遺漏,藉由使用 Windows Installer 封裝執行主要的升級之後

文章翻譯 文章翻譯
文章編號: 905238 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

使用 Microsoft Windows 安裝程式封裝執行主要的升級後的組件於全域組件快取或 SxS (藉由從並存資料夾、 \Windows\WinSxS\) 找不到。

發生的原因

之所以發生這個問題,當 Windows Installer RemoveExistingProducts 動作編序在可防止適當的位置參考組件的計數,並且,造成太早移除組件。RemoveExistingProducts 動作循序 InstallExecuteSequence 資料表 Windows 安裝程式封裝中。使新的產品安裝之前,會移除舊的產品編序 RemoveExistingProducts 動作時,就會發生這個問題。

當組件放入全域組件快取時,組件就會被重新命名。 Windows 「 安裝程式無法判斷組件的正確名稱。Windows 「 安裝程式必須依賴 Microsoft.NET Framework 管理名稱。

當執行主要的升級藉由使用 Windows Installer 封裝時,Windows 「 安裝程式呼叫進入.NET Framework 來測試是否組件已經安裝在全域組件快取中。如果.NET Framework 會傳回是,包含主要升級的 Windows 安裝程式封裝中組件的元件不允許進行安裝。接下來,RemoveExistingProducts 動作執行,並解除安裝全域組件快取中現有的組件。RemoveExistingProducts 動作會因為新的產品尚未註冊為組件的用戶端,而且沒有其他用戶端存在。在主要的升級元件不被允許的安裝,因為組件是不重新安裝時主要升級會安裝元件。

如果您 resequence RemoveExistingProducts 動作來排程的舊產品解除安裝新的產品安裝後,不會移除組件。因為組件現在有額外,將不會移除組件參考計數從新的產品。因此,即使組件的安裝略過的主要升級,組件仍然保持因為另一個用戶端參考組件。新的產品及舊產品參考組件。

附註當組件不在全域組件] 快取沒有重新命名會發生。標準的 Windows 安裝程式檔案版本控制規則套用,並在主要的升級元件所允許之安裝。

其他可行方案

如果要解決這個問題而定,使用 [下列的其中一個方法]。

方法 1

增加您嘗試安裝到全域組件快取中建立-並存安裝組件 AssemblyVersion 屬性。

方法 2

使用 Windows Installer 資料表撰寫工具] 來變更在 [InstallExecuteSequence RemoveExistingProducts 動作的順序資料表 InstallFinalize 動作之後發生。範例使用 [Orca.exe 資料庫表格編輯器建立或編輯 Windows 「 安裝程式套件。

其他相關資訊

您可以 安裝和部署專案 的專案,在 Microsoft Visual Studio.NET 中建立一個 Windows 安裝程式封裝。當 RemoveExistingProducts 動作編序這個 Windows 安裝程式封裝,RemoveExistingProducts InstallExecuteSequence 資料表中的動作會造成 < 徵狀 > 一節所述的問題的預設位置中。

如需詳細資訊請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站]:
Windows 「 安裝程式
http://msdn2.microsoft.com/en-us/library/aa372866.aspx

RemoveExistingProducts 動作
http://msdn2.microsoft.com/en-us/library/aa371197.aspx

InstallExecuteSequence 資料表
http://msdn2.microsoft.com/en-us/library/aa369500.aspx

Orca.exe
http://msdn2.microsoft.com/en-us/library/aa370557.aspx

屬性

文章編號: 905238 - 上次校閱: 2008年9月11日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Windows Installer 3.1
  • Microsoft Windows Installer 3.0
  • Microsoft Windows Installer 2.0
關鍵字:?
kbmt kbwindowsinstaller kbinfo kbtshoot kbprb KB905238 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:905238
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com