修補 .NET Framework 失敗併發生錯誤:存取遭到拒絕或檔案正在使用中

本文可協助您解決在套用修補程式時,Microsoft .NET Framework 在使用或鎖定元件時,Microsoft .NET Framework 修補失敗的問題。

原始產品版本:  .NET Framework
原始 KB 編號:  2263996

徵狀

如果全域存取快取(GAC)中的元件檔案已鎖定或正在使用中,可能會導致 .NET Framework 修補程式失敗。 在合成處理復原的方式中,錯誤可能會加劇此問題,而且可能會導致刪除檔案。 這會導致受管理的應用程式(依存于架構元件的應用程式)失敗。

失敗的修補程式 MSI 詳細記錄可能包含如下內容:

「C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll ' 由於系統錯誤:拒絕存取。
06/22/10 11:57:26 DDSet_Status:休眠 100ms .。。
MSI (s)(54!70) [11:57:26:738]:產品: Microsoft .NET Framework 2.0 Service Pack 2--此 Windows Installer 套件發生問題。
如需詳細資訊,請參閱安裝記錄檔。
此 Windows Installer 套件發生問題。
如需詳細資訊,請參閱安裝記錄檔。
06/22/10 11:57:26 DDSet_CARetVal:0
06/22/10 11:57:26 DDSet_Exit: InstallAssembly 結束,傳回值1603
MSI (s)(54:94) [11:57:26:758]:使用者原則值 ' DisableRollback ' 是0
MSI (s)(54:94) [11:57:26:758]:機器原則值 ' DisableRollback ' 是0
動作結束11:57:26: InstallExecute。 傳回值3。

或者

02/22/10 08:38:32 DDSet_Status:休眠 100ms .。。
02/22/10 08:38:32 DDSet_Error:無法安裝元件
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll。 IAssemblyCache->InstallAssembly ()傳回-2147024864。
02/22/10 08:38:32 DDSet_Error:無法安裝元件
' C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll ' 由於系統錯誤:
因為另一個程式正在使用該檔案,所以無法存取該檔。

原因

如果在套用修補程式時元件正在使用中或已鎖定,修補程式將會失敗。

解決方案

您可以透過確保未執行的程式執行,將鎖定在元件上,以避免這種問題。

若要偵測是否正在使用元件,請遵循下列步驟:

  1. 下載procexp.exe以探索鎖定元件的處理常式。

  2. 啟動 procexp.exe,然後按 Ctrl + F 以開啟 [處理常式瀏覽器搜尋] 視窗。

  3. 在 [控制碼或 DLL 子字串] textbox 中,輸入元件,然後選取 [搜尋]。

    搜尋元件

  4. 列出的所有檔案都會影響安裝修補程式。 終止所有列出的處理常式或關閉相關聯的應用程式。 如果要執行這項操作,請依照下列步驟執行:

    1. 在 [處理瀏覽器搜尋] 視窗中,選取您要終止的進程名稱,以尋找程式。

    2. 在 [程式] 窗格中,以滑鼠右鍵按一下進程名稱。

    3. 選取 [中止處理程式] 終止處理常式。

      終止處理常式