이 문서는 어셈블리가 사용 중이거나 패치가 적용될 때 잠겨 있을 때 Microsoft .NET Framework 패치 오류가 발생하는 문제를 해결하는 데 도움이 됩니다.
원래 제품 버전: .NET Framework
원래 KB 번호: 2263996
증상
GAC(전역 액세스 캐시)의 어셈블리 파일이 잠겨 있거나 사용 중인 경우 .NET Framework 패치가 실패할 수 있습니다. 이 문제는 Fusion이 롤백을 처리하는 방식의 버그로 인해 악화될 수 있으며 파일이 삭제될 수 있습니다. 이렇게 하면 관리되는 애플리케이션(프레임워크 어셈블리에 의존하는 애플리케이션)이 실패합니다.
실패한 패치 MSI 자세한 정보 표시 로그에는 다음과 같은 내용이 포함될 수 있습니다.
시스템 오류:액세스가 거부되어 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll'.
06/22/10 11:57:26 DDSet_Status: 잠자는 100ms...
MSI(들) (54!70) [11:57:26:738]: 제품: Microsoft .NET Framework 2.0 서비스 팩 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(들) (54:94) [11:57:26:758]: 사용자 정책 값 'DisableRollback'은 0입니다.
MSI(들) (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':
다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스할 수 없습니다.
원인
패치를 적용할 때 어셈블리가 사용 중이거나 잠긴 경우 패치가 실패합니다.
해결 방법
어셈블리에 잠금을 설정할 수 있는 프로세스가 실행되지 않도록 하여 이 문제를 방지할 수 있습니다.
어셈블리가 사용되고 있는지 여부를 감지하려면 다음 단계를 수행합니다.
procexp.exe 다운로드하여 어셈블리를 잠그는 프로세스를 검색합니다.
procexp.exe 시작하고 Ctrl+F를 눌러 프로세스 탐색기 검색 창을 엽니다.
핸들 또는 DLL 하위 문자열 텍스트 상자에 어셈블리를 입력한 다음 검색을 선택합니다.
나열된 모든 파일은 패치 설치에 영향을 미칠 수 있습니다. 나열된 모든 프로세스를 종료하거나 연결된 애플리케이션을 닫습니다. 이를 수행하려면 다음 단계를 따르십시오:
프로세스 탐색기 검색 창에서 종료할 프로세스 이름을 선택하여 프로세스를 찾습니다.
프로세스 창에서 프로세스 이름을 마우스 오른쪽 단추로 클릭합니다.
프로세스 종료를 선택하여 프로세스를 종료합니다.