어셈블리는 GAC에 물리적으로 저장되는 곳에 어디에 설치됩니까?

StackOverflow https://stackoverflow.com/questions/815362

  •  03-07-2019
  •  | 
  •  

문제

프로젝트에 내장 된 어셈블리를 내보내고 싶습니다. 그러나 그들은 어디에 신체적으로 저장됩니까?

도움이 되었습니까?

해결책

나는 질문을 쓴 후 실제로이 게시물을 찾았습니다. 정말 좋은 설명입니다.

당신이 탐색하면 그들을 볼 수있을 것입니다

c:\windows\assembly

Explorer를 사용하면 멋진 형식의 어셈블리 목록이 표시됩니다.
이보기를 담당하는 쉘 확장은 GAC의 어셈블리뿐만 아니라 NGEN.EXE와 미리 컴파일 된 기본 버전의 어셈블리를 보여줍니다.
그러나 파일은 실제로 여기에 저장되지 않습니다. 쉘 확장은 단순히 실제 위치를 가리킨다. 명령 프롬프트를 통해 동일한 디렉토리로 탐색하여 파일이 실제로 저장되는 위치를 확인할 수 있습니다.
이 위치에는 GAC라는 이름을 포함한 여러 하위 디렉토리가 있습니다. 여기에 여러 층의 해시 코드와 어셈블리 이름 아래에 묻힌 것은 물리적 어셈블리와 함께, 구식 .ini 파일과 함께 강한 이름을 포함하는 구식 .ini 파일이 있습니다. GAC가 불투명 한대로 변화를 조심하지만,이 미지의 영토에서는 표지 아래에서 무슨 일이 일어나고 있는지 이해하기 위해 탐험 할 가치가 있습니다.

다른 팁

그들은 이름이 지정된 폴더에 % SystemRoot %에 저장됩니다. 집회

% SystemRoot % 변수는 Microsoft Windows NT 및 파생 상품에서 발견되는 특수 시스템 전체 환경 변수입니다. 값은 드라이브 및 경로를 포함하여 시스템 폴더의 위치입니다.

드라이브는 % SystemDrive %와 동일하며 청정 설치의 기본 경로는 운영 체제의 버전에 따라 다릅니다. 기본적으로 깨끗한 설치시 :

* Windows NT 5.1 (Windows XP) and newer versions use \WINDOWS
* Windows NT 5.0 (Windows 2000), Windows NT 4.0 and Windows NT 3.1 use \WINNT
* Windows NT 3.5x uses \WINNT35

(Wikipedia에서)

GAC의 물리적 위치는 %windir %아래의 어셈블리 디렉토리입니다.

c:\windows\assembly

Explorer 또는 Gacutil 프로그램을 사용하여 GAC에 어셈블리를 복사 할 수 있습니다.

아니요, 물리 어셈블리는 "C : Windows Assembly"에 저장됩니다. 어셈블리에 대한 언급 만 저장됩니다. 예를 들어, 어셈블리 "system.windows.forms.dll"(.NET Framework Assemblies의 대부분)는 많은 에디션에서 "C : Windows Winsxs"에 물리적으로 저장되며 많은 플랫폼에 최적화되었습니다 (그냥 이동하십시오. c : windows winsxs "탐색기에서"system.windows.forms.dll "을 입력하고 검색 상자). 예를 들어, 강력하게 명명 된 어셈블리를 만들고 GAC에 등록 할 수 있지만 물리적 위치는 어셈블리 파일을 배치하는 위치입니다. (예 : "C : Users %username% documents Visual Studio 2008 Projects yourAsSemblyProjectName YourAsSemblyProjectName bin debug" - vs 프로젝트 기본 디렉토리). 또한 GAC에는 어셈블리에 대한 참조가 저장되어 있으므로 조립품을 재건하면 GAC에 등록되어 있으면 조립품이 조립을 사용하고 있으며 GAC에서 참조하여 조립품을 재건축 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top