GAC에서 폴더 및 파일을 보는 방법은 무엇입니까?


109

GAC 에서 폴더와 하위 폴더를보고 싶습니다 . 또한 GAC 에서 추가 및 제거에 대해 알고 싶습니다 .

설치하려면 다음을 열어 명령 프롬프트에 다음 줄을 작성합니다 Visual Studio command prompt.

gacutil /i [assembly path]

그러나 제거하려면 다음 만 필요합니다.

gacutil /u [assembly name]

왜?


Windows 디렉터리의 어셈블리 폴더 중 하나로 이동 한 다음 검색 창 (파일 탐색기의)에 찾고있는 dll 이름을 입력하면 표시되기 시작합니다.
JakeJ

답변:


135

설치:

gacutil -i "path_to_the_assembly"

전망:

Windows 탐색기 폴더에서 열기

  • .NET 1.0-NET 3.5 : c:\windows\assembly( %systemroot%\assembly)
  • .NET 4.x : %windir%\Microsoft.NET\assembly

또는 gacutil –l

어셈블리를 설치할 때 gacutil찾을 수있는 위치를 지정해야 하므로 전체 경로도 제공해야합니다. 그러나 어셈블리가 이미 GAC에 gacutil있는 경우 폴더 경로를 알고 있으므로 어셈블리 이름 만 있으면됩니다.

MSDN :


4
.NET 4.0의 경우 GAC 위치는 현재 % windir % \ Microsoft.NET \ assembly \
Alex Nolasco입니다.

57

나는 하루 늦었고 이것에 대해 1 달러 부족합니다. Windows 탐색기에서 GAC의 폴더 구조를 보려면 레지스트리사용하여 이를 수행 할 수 있습니다 .

  1. regedit를 시작합니다.
  2. HKLM \ Software \ Microsoft \ Fusion으로 이동합니다.
  3. DisableCacheViewer라는 DWORD를 추가하고 값을 1로 설정합니다.

임시보기의 경우 폴더 경로를 드라이브로 대체하여 특수 디렉터리 속성을 제거 할 수 있습니다.

  1. 계정의 권한 수준 에서 명령 프롬프트를 시작 합니다.
  2. SUBST Z 입력 : C : \ Windows \ assembly
    • Z는 사용 가능한 드라이브 문자가 될 수 있습니다.
  3. 내 컴퓨터를 열고 새 대체 디렉토리를 찾습니다.
  4. 명령 프롬프트에서 가상 드라이브를 제거하려면 SUBST Z : / D를 입력합니다.

이와 같은 작업을 원하는 이유에 대해서는이 트릭을 사용하여 서로 다른 컴퓨터간에 GAC DLL을 비교하여 실제로 동일한 지 확인했습니다.


Powershell을 사용하여 레지스트리 편집을 자동화 할 수 있습니다.
Textcape

새 항목 'HKLM : \ Software \ Microsoft \ Fusion'-Force | New-ItemProperty -Name "DisableCacheViewer"-PropertyType DWord -Value 1 -Force | Out-Null
Textcape

40

"실행"프로그램을 시작하고 (Windows Vista / 7 / 8 : 시작 메뉴 검색 창에 입력) 다음을 입력합니다. C:\windows\assembly\GAC_MSIL

그런 다음 상위 폴더 (Windows Vista / 7 / 8 : 탐색기 표시 줄에서 클릭)로 이동하여 일반 탐색기 창에서 모든 GAC 파일을 확인합니다. 이제 다른 곳과 마찬가지로 파일을 복사, 추가 및 제거 할 수 있습니다.


감사합니다. .NET 4 이후로 쓸모없는 것으로 표시된 Windows 탐색기를 사용할 수있었습니다
Dave Friedel

8

파일을 보려면 명령 프롬프트 ( cmd) 에서 파일을 찾아보십시오 . 예 :

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

GAC에서 파일을 추가 및 제거하려면 도구를 사용하십시오. gacutil


일반 폴더로보고 싶습니다.
Rohit Vipin Mathews 2012

@CodingMastero 일반 폴더 가 아닙니다 !
Klaus Byskov Pedersen 2012

정상적인 것으로보기 위해 해킹을 사용할 수 없습니까?
Rohit Vipin Mathews 2012

@CodingMastero 아니요. 위에서 설명한대로 명령 프롬프트를 통해 볼 수 있습니다.
Klaus Byskov Pedersen 2012

1
예. 여기서 명확하지 않았을 수도 있습니다. C:\Windows\assembly.NET 4.0 GAC를 탐색하는 데 사용할 수 없습니다 . 물론 .NET 2/3에서도 사용할 수 있습니다 (설치된 경우). 새 C:\Windows\Microsoft.NET\assembly디렉토리 에 대해 동일한 방식으로 작동하는 유사한 쉘 확장 (AFAIK)이 없습니다 .
Christian.K

5

다음을 사용하여 어셈블리로 설치합니다.

  • 응용 프로그램을 위해 작성하는 설치 프로그램.
  • 명령 줄 gacutil.exe-i옵션 과 함께 도구를 사용합니다 .
  • 어셈블리 삭제 %windir%\Assembly(최대 .NET 3.5, CLR 2.0)

다음을 사용하여 GAC의 콘텐츠를 봅니다.

  • 옵션 이있는 gacutil.exe도구입니다 -l.
  • .NET 2.0, 3.0 및 3.5 (CLR 2.0)의 %windir%\assembly경우 Windows 탐색기 를 사용하여 검색합니다 .

.NET 4.0에서 (물리적) GAC 위치가 변경되었습니다. 더 이상에 있지 %windir%\Assembly않지만 지금은에 %windir%\Microsoft.NET\assembly있습니다. 그러나 거의 필요하지 않은 사용 가능한 도구 (일부 "멋진"자체 개발 시스템 진단 도구 제외)가 제공되므로 어쨌든 물리적 위치에 의존하는 코드를 작성해서는 안됩니다.


게다가 gacutil.exe제가 알고 사용할 수있는 유일한 도구 fusion.dll입니다.
Scott Solmer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.