Poprawianie .NET Framework kończy się błędem: Odmowa dostępu lub Plik w użyciu

Ten artykuł ułatwia rozwiązanie problemu z błędami awarii .NET Framework poprawek podczas zestawów podczas ich używania lub zablokowania podczas stosowania poprawki.

Oryginalna wersja produktu:   .NET Framework
Oryginalny numer KB:   2263996

Symptomy

Jeśli plik zestawu w globalnej pamięci podręcznej dostępu (GAC, Global Access Cache) został zablokowany lub jest w użyciu, może to spowodować, że .NET Framework się nie powieść. Ten problem może zostać usunięty przez błąd podczas obsługi wycofywania i może spowodować usunięcie plików. Spowoduje to niepowodzenie aplikacji zarządzanych (tych aplikacji, które zależą od zestawów struktury).

Dziennik msi verbose poprawek o niepowodzenie może zawierać coś w ten sposób:

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll" z powodu błędu systemu:Odmowa dostępu.
22.06.10 11:57:26 DDSet_Status: śpij 100 m...
MSI (s) (54!70) [11:57:26:738]: Produkt: Microsoft .NET Framework 2.0 z dodatkiem Service Pack 2 — występuje problem z tym pakietem Instalatora Windows.
Aby uzyskać więcej informacji, zapoznaj się z dziennikem konfiguracji.
Występuje problem z tym pakietem instalatora Windows.
Aby uzyskać więcej informacji, zapoznaj się z dziennikem konfiguracji.
22.06.10 11:57:26 DDSet_CARetVal: 0
22.06.10 11:57:26 DDSet_Exit: InstallAssembly zakończono ze zwracaną wartością 1603
MSI (s) (54:94) [11:57:26:758]: Wartość zasad użytkownika "DisableRollback" wynosi 0
MSI (s) (54:94) [11:57:26:758]: Wartość zasad komputera "DisableRollback" wynosi 0
Akcja zakończyła się 11:57:26: InstallExecute. Zwracana wartość 3.

Lub

22.02.10 08:38:32 DDSet_Status: śpij 100 m...
22.02.10 08:38:3 DDSet_Error 2: nie można zainstalować zestawu
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll. Zwrócono IAssemblyCache->InstallAssembly() — 2147024864.
22.02.10 08:38:3 DDSet_Error 2: nie można zainstalować zestawu
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll" z powodu błędu systemu:
Ten proces nie ma dostępu do pliku, ponieważ jest on używany przez inny proces.

Przyczyna

Jeśli zestawy są w użyciu lub zablokowane po zastosowaniu poprawki, poprawka nie powiedzie się.

Rozwiązanie

Można uniknąć tego problemu, upewniając się, że nie są uruchomione procesy, które mogą zablokować zestawy.

Aby sprawdzić, czy są używane zestawy, wykonaj następujące czynności:

  1. Pobierz procexp.exe , aby wykryć proces blokowania zestawów.

  2. Uruchom procexp.exe a następnie naciśnij klawisze Ctrl+F, aby otworzyć okno wyszukiwanie w Eksploratorze procesów.

  3. W polu tekstowym Podciąg uchwytu lub biblioteki DLL wpisz tekst Zestaw , a następnie wybierz pozycję Wyszukaj.

    Zrzut ekranu przedstawiający kroki wyszukiwania zestawu.

  4. Wszystkie wymienione pliki mogą mieć wpływ na instalację poprawki. Zakończ wszystkie wymienione procesy lub zamknij skojarzone aplikacje. Aby to zrobić, wykonaj następujące kroki.

    1. W oknie wyszukiwania Eksploratora procesów wybierz nazwę procesu, którą chcesz zakończyć , aby zlokalizować proces.

    2. Kliknij prawym przyciskiem myszy nazwę procesu w okienku Proces.

    3. Wybierz pozycję Zaśmieć proces , aby zakończyć proces.

      Zrzut ekranu przedstawiający kroki zaśmiecania procesu.