어셈블리를 GAC에 직접 설치하는 패키지가 있습니다 (예 : % windows % / assembly의 깊은 곳).
GAC에서 실제 파일 시스템으로 실제 어셈블리 (DLL)를 어떻게 제거합니까?
감사.
어셈블리를 GAC에 직접 설치하는 패키지가 있습니다 (예 : % windows % / assembly의 깊은 곳).
GAC에서 실제 파일 시스템으로 실제 어셈블리 (DLL)를 어떻게 제거합니까?
감사.
답변:
이 기사 의 조언을 사용하여 GAC에서 어셈블리를 얻었습니다.
GAC에서 DLL 가져 오기
GAC에 배포 된 DLL (일반적으로 c : \ windows \ assembly에 위치)은 일반 DLL 파일로 보거나 사용할 수 없습니다. VS 프로젝트에서 직접 참조 할 수 없습니다. 개발자는 일반적으로 원본 DLL 파일의 사본을 보관하고 프로젝트 실행시 GAC의 어셈블리를 사용하는 개발 (디자인)시 프로젝트에서 해당 DLL 파일을 참조합니다.
GAC에서 어셈블리가 서명되고 배포 된 것으로 확인되면 실행 (런타임) 동안 CLR은 VS에서 디자인 타임 동안 참조 된 DLL 대신 GAC에서 어셈블리를 자동으로 선택합니다. 개발자가 원본 DLL을 삭제했거나 어떤 이유로 든 가지고 있지 않은 경우 GAC에서 DLL 파일을 가져 오는 방법이 있습니다. GAC에서 DLL을 복사하려면 다음 단계를 수행하십시오.
regsvr32 / u C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ shfusion.dll을 실행하십시오.
- shfusion.dll은 GAC 폴더를 뚜렷하게 보여주는 탐색기 확장 DLL입니다. 이 파일을 등록 해제하면 어셈블리 캐시 뷰어가 제거되고 GAC 폴더가 탐색기에서 일반 폴더로 표시됩니다.
"% windir % \ assembly \ GAC_MSIL"을 엽니 다.
DLL 폴더를 찾아 깊은 곳으로 이동하여 DLL을 찾으십시오.
하드 디스크 어딘가에 DLL을 복사하고 프로젝트에서 참조하십시오.
"regsvr32 % windir % \ Microsoft.NET \ Framework \ <. NET version directory> \ shfusion.dll"을 실행하여 shfusion.dll 파일을 다시 등록하고 GAC의 원래 고유 한 뷰를 다시 얻으십시오.
shfusion.dll
지원하지 않는 것 같습니다 . 이 옵션을 생략하면 구성 요소를 다시 등록 할 수 있습니다. DllInstall()
regsvr32
/i
여기에 설명 된 방법은 매우 쉽습니다.
기사에서 요약 :
\\YourServer\C$\Windows\Assembly
)에 매핑예.
DisableCacheViewer 레지스트리 키 추가
HKLM \ Software \ Microsoft \ Fusion \ 아래에 DisableCacheViewer라는 이름으로 새 dword 키를 만들고 [DWORD] 값을 1로 설정하십시오.
Windows 탐색기로 돌아가서 어셈블리 폴더로 돌아 가면 일반적인 파일 시스템보기가됩니다.
내가 찾은 쉬운 방법은 명령 프롬프트를 열고 원하는 DLL을 찾을 때까지 언급 한 폴더를 탐색하는 것입니다. 복사 명령을 사용하여 가져올 수 있습니다. Windows 탐색기에는이 폴더에 대한 "유용한"특수보기가 있습니다.
저는 PowerShell GAC 의 저자입니다 . PowerShell GAC를 사용하면 폴더 구조 변경과 같은 GAC 내부에 의존하지 않고 GAC에서 어셈블리를 추출 할 수 있습니다.
Get-GacAssembly SomeCompany* | Get-GacAssemblyFile | Copy-Item -Dest C:\Temp\SomeCompany
레지스트리를 수정하거나 명령 줄, powershell 또는 다른 프로그램을 사용하지 않고 GAC 내부를 살펴볼 수있는 방법을 찾았습니다.
새 바로 가기를 만듭니다 (어디서나). 그런 다음 대상을 갖도록 바로 가기를 수정하십시오.
%windir%\assembly\GAC_MSIL\System
이 바로 가기를 열면 GAC 내부의 시스템 폴더 (모든 사람이 가져야 함)로 이동하여 더 높은 디렉토리로 전환 한 다음 원하는 다른 폴더를 탐색 할 수있는 놀라운 부작용이 있습니다 (dll 파일 등 참조).
Windows 7 및 Windows Server 2012에서 이것을 테스트했습니다.
참고 : 바로 가기를 만들 때 해당 대상을 사용할 수는 없지만 편집 할 수는 있습니다.
즐겨!