오진이 블로그

[제프리 리처의 CLR via C#] 전역 어셈블리 캐시 본문

Development/C#

[제프리 리처의 CLR via C#] 전역 어셈블리 캐시

오늘도 진이 2021. 3. 17. 15:23

1부. CLR의 기본

3장. 공유 어셈블리와 강력한 이름의 어셈블리

전역 어셈블리 캐시

  • 어떻게 강력한 이름의 어셈블리를 배포하고 CLR이 정보를 사용하여 어셈블리의 위치를 파악하고 로드하는지 살펴볼 것이다.
  • 어떤 어셈블리가 여러 응용프로그램에 의하여 사용된다면, 어셈블리는 반드시 잘 알려진 디렉터리에 들어있어야 하고, CLR은 어 어셈블리에 대한 참조가 발견되었을 때 자동으로 찾아 볼 수 있는 고정된 위치를 알고 있어야 한다. 잘 알려진 위치라고 하는 곳은 바로 전역 어셈블리 캐시(Global Assmbly Cache, GAC)라는 곳이다.
  • GAC 디렉터리는 일련의 구조를 가지고 있다. 수많은 하위 디렉터리들이 있으며, 하위 디렉터리들의 이름을 짓기 위한 알고리즘이 있다.
  • GAC 폴더 안으로 파일을 임의로 복사하여 집어넣는 것은 삼가야 하며, 대신 지정된 도구를 사용하여 GAC에 새로운 어셈블리를 추가할 수 있다.
  • 만약 여러분이 배포하려는 응용프로그램이 GAC에 배포해야 하는 어셈블리를 포함하는 경우, 반드시 Windows Installer(MSI)를 사용해야 하는데, 왜냐하면 Windows Installer는 최종 사용자의 컴퓨터에서 GAC 안에 어셈블리를 설치할 수 있도록 허가된 유일한 도구이기 때문이다.

Comments