2011-10-22 6 views
4

gacutil.exe를 사용하여 주어진 어셈블리 (이 경우 log4net.dll이지만 유사한 케이스에 적용해야 함)를 제거하려고하면 해당 어셈블리가 응용 프로그램에 필요하기 때문에 작업이 실패합니다. 그러나, 나는 실제로 그것을 요구하는 응용 프로그램 (들)을 말하는 방법을 알아낼 수 없다. 결과는 MSI 데이터베이스/Windows Installer에 요구 사항이 기록되었음을 나타 내기 때문에 MSI 데이터베이스에 등록 된 모든 GAC 어셈블리를 나열 할 수있는 유틸리티가있는 것처럼 보일 것입니다. log4net을 사용하여 항목을 검색 할 수도 있습니다 .DLL)하거나 :)GAC에 등록 된 어셈블리가있는 응용 프로그램을 확인하는 방법은 무엇입니까?

C:\ » gacutil /u log4net 
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 


Assembly: log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL 
Unable to uninstall: assembly is required by one or more applications 
Pending references: 
       SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer> 
Number of assemblies uninstalled = 0 
Number of failures = 0 

덕분에 존재하는 경우 모든 관련 의존성 체인과 이상적으로 (나 특정 GAC'd 어셈블리를 지정하고 종속성을 나열합니다 수 있습니다!

답변

3

나는 이것을 위해 결코 좋은 것을 결코 발견하지 못했다. 내가 한 일은 (그 일을했지만, 짜증) procmon을 실행하여 gacutil이 액세스하고 있으며 HKCR \ Installer \ Products \ 098D637EEF1AFF14586E779FE4C38C4D 키를 누르는 것을 확인하는 것이 었습니다. regedit에서이 키를 살펴보면 제품이 "Plantronics Spokes Software"라는 것을 알 수있었습니다.

나는 appwiz.cpl에 들어가서 해당 응용 프로그램을 제거한 다음 나중에 gacutil/l log4net이 log4net이 더 이상 GAC에 없다는 것을 보여주었습니다.

나는 여전히 더 나은 대답을 찾고 싶지만, 'procmon을 실행하면 gacutil.exe를 처리하고 HKCR \ Installer \ Products 아래의 경로는 적어도 아무것도없는 것보다 낫습니다.