Korrigering av .NET Framework misslyckas med ett fel: Åtkomst nekas eller fil används

Den här artikeln hjälper dig att lösa problemet där Microsoft .NET Framework korrigeringsfel när sammansättningar används eller låses när en korrigering tillämpas.

Ursprunglig produktversion: .NET Framework
Ursprungligt KB-nummer: 2263996

Symptom

Om en sammansättningsfil i Global Access Cache (GAC) har låsts eller används kan det orsaka .NET Framework korrigeringar misslyckas. Det här problemet kan förvärras av en bugg på det sätt som fusion hanterar återställningen och kan orsaka att filer tas bort. Detta resulterar i att hanterade program (de program som är beroende av ramverkssammansättningar) misslyckas.

Den felande korrigeringen av MSI Utförlig logg kan innehålla något som liknar detta:

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll" på grund av systemfel: Åtkomst nekas.
06/22/10 11:57:26 DDSet_Status: Sovande 100ms...
MSI (s) (54!70) [11:57:26:738]: Produkt: Microsoft .NET Framework 2.0 Service Pack 2 – Det finns ett problem med det här Windows Installer-paketet.
Mer information finns i installationsloggen.
Det finns ett problem med det här Windows Installer-paketet.
Mer information finns i installationsloggen.
06/22/10 11:57:26 DDSet_CARetVal: 0
06/22/10 11:57:26 DDSet_Exit: InstallAssembly slutade med returvärde 1603
MSI (s) (54:94) [11:57:26:758]: Användarprincipvärdet "DisableRollback" är 0
MSI (s) (54:94) [11:57:26:758]: Datorprincipvärdet "DisableRollback" är 0
Åtgärden avslutades 11:57:26: InstallExecute. Returvärde 3.

Eller

02/22/10 08:38:32 DDSet_Status: Sovande 100ms...
02/22/10 08:38:32 DDSet_Error: Det gick inte att installera sammansättningen
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll. IAssemblyCache-InstallAssembly>() returnerade -2147024864.
02/22/10 08:38:32 DDSet_Error: Det gick inte att installera sammansättningen
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll" på grund av systemfel:
Processen kan inte komma åt filen eftersom den används av en annan process.

Orsak

Om sammansättningar används eller låses när en korrigering tillämpas misslyckas korrigeringen.

Åtgärd

Det här problemet kan undvikas genom att se till att processer inte körs som kan låsa sammansättningarna.

Följ dessa steg för att identifiera om sammansättningar används:

  1. Ladda ned procexp.exe för att identifiera processen som låser sammansättningar.

  2. Starta procexp.exe och tryck sedan på Ctrl +F för att öppna fönstret Sök i Processutforskaren .

  3. I textrutan Hantera eller DLL-delsträng skriver du Sammansättning och väljer sedan Sök.

    Skärmbild som visar steg för att söka i sammansättning.

  4. Alla filer i listan kan påverka installationen av korrigeringen. Avsluta alla processer i listan eller stäng de associerade programmen. Gör så här:

    1. Välj det processnamn som du vill avsluta i fönstret Sök i Processutforskaren för att hitta processen.

    2. Högerklicka på processnamnet i fönstret Process .

    3. Välj Avsluta process för att avsluta processen.

      Skärmbild som visar steg för att avsluta en process.