您目前已離線,請等候您的網際網路重新連線

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

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本: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) 網站]:
MSI

警告:本文為自動翻譯

內容

文章識別碼:905238 - 最後檢閱時間:09/11/2008 15:45:19 - 修訂: 2.0

Microsoft Windows Installer 3.1, Microsoft Windows Installer 3.0, Microsoft Windows Installer 2.0

  • kbmt kbwindowsinstaller kbinfo kbtshoot kbprb KB905238 KbMtzh
意見反應