답변:
따라서 기본적으로 충돌에 대해 걱정하지 않고 DLL을 전역 적으로 액세스 할 수있는 방법입니다. 더 이상 DLL 지옥. 각 아키텍처와 버전은 살기 좋은 곳입니다.
또한 탐색기에서 탐색 할 수있는 자체 방법을 얻습니다.
C : \ Windows \ 조립
Windows 탐색기에는 모든 DLL이 나열됩니다.
그러나 당신이 시작 cmd
하면 그것이 실제로 어떻게 구성되어 있는지 볼 수 있습니다 :
C : \ Users \ tritter> cd C : \ Windows \ assembly C : \ Windows \ assembly> dir C : \ Windows \ assembly의 디렉토리 2009 년 7 월 20 일 02:18 오후 <DIR> GAC 2009 년 6 월 17 일 04:22 오후 <DIR> GAC_32 2009 년 6 월 17 일 04:22 오후 <DIR> GAC_64 2009 년 6 월 17 일 04:22 오후 <DIR> GAC_MSIL ...한조각... 0 파일 0 바이트 9 Dir (s) 90,538,311,680 바이트 무료 C : \ Windows \ assembly> cd GAC_64 C : \ Windows \ assembly \ GAC_64> dir C : \ Windows \ assembly \ GAC_64 디렉토리 2009 년 6 월 17 일 오후 4시 22 분 <DIR>. 2009/06/17 04:22 오후 <DIR> .. 2008 년 1 월 19 일 오전 9시 54 분 <DIR> blbproxy ...한조각... 2008 년 1 월 19 일 오전 9시 54 분 <DIR> srmlib 2008 년 1 월 19 일 06:11 오전 <DIR> System.Data 2008 년 1 월 19 일 오전 6시 11 분 <DIR> System.Data.OracleClient ...한조각... 0 파일 0 바이트 34 Dir (s) 90,538,311,680 바이트 무료 C : \ Windows \ assembly \ GAC_64> cd 시스템. 데이터 C : \ Windows \ assembly \ GAC_64 \ System.Data> dir C : \ Windows \ assembly \ GAC_64 \ System.Data의 디렉토리 2008 년 1 월 19 일 오전 6시 11 분 <DIR>. 2008 년 1 월 19 일 오전 6시 11 분 <DIR> .. 2009 년 4 월 11 일 오후 12시 20 분 <DIR> 2.0.0.0__b77a5c561934e089 0 파일 0 바이트 3 Dir (s) 90,538,311,680 바이트 무료 C : \ Windows \ assembly \ GAC_64 \ System.Data> cd 2.0.0.0__b77a5c561934e089 C : \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089> dir C : \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089의 디렉토리 2009 년 4 월 11 일 오후 12시 20 분 <DIR>. 2009 년 4 월 11 일 오후 12시 20 분 <DIR> .. 04/11/2009 12:12 오후 3,008,512 System.Data.dll 1 파일 3,008,512 바이트 2 Dir (s) 90,538,311,680 바이트 무료 C : \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089>
여기에서 System.Data의 버전 2.0.0.0__b77a5c561934e089를 볼 수 있습니다.
DLL은 5 개 부분으로 식별됩니다.
처음 3 개는 일반적으로 큰 것이지만.
공용 언어 런타임이 설치된 각 컴퓨터에는 전역 어셈블리 캐시라고하는 컴퓨터 전체의 코드 캐시가 있습니다. 전역 어셈블리 캐시는 컴퓨터의 여러 응용 프로그램에서 공유하도록 특별히 지정된 어셈블리를 저장합니다.
필요할 때만 전역 어셈블리 캐시에 어셈블리를 설치하여 어셈블리를 공유해야합니다. 일반적인 지침으로 어셈블리 종속성을 비공개로 유지하고 어셈블리 공유가 명시 적으로 요구되지 않는 한 응용 프로그램 디렉토리에서 어셈블리를 찾습니다. 또한 COM interop 또는 관리되지 않는 코드에 액세스 할 수 있도록 어셈블리를 전역 어셈블리 캐시에 설치할 필요가 없습니다.
MSDN에 포함 된 것들이 당신을 놀라게 할 수 있습니다 ... 일반적으로 기사처럼 읽을 수 있습니다. 상단에서 가장 간단하고 중요한 부분은 복잡한 세부 사항을 자세히 설명합니다. 그것은 내가 할 수있는 것보다 확실히 더 잘 설명합니다.
Visual Studio는 GAC의 모든 DLL을 참조 창의 .NET 탭에 표시합니다. (솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택하십시오.) 그러면보다 복잡한 아이디어를 얻을 수 있습니다.
Exe Application은 우선 현재 디렉토리에서 하위 디렉토리로 참조합니다. 그런 다음 시스템 디렉토리. VS6.0 시스템 디렉토리는 ..windows / system32였습니다. .NET 시스템 디렉토리는 아래 GAC 경로와 같습니다.
GAC 경로
1) C : \ Windows \ Assembly (.NET 2.0 ~ 3.5)
2) C : \ Windows \ Microsoft.NET \ assembly (.NET 4.0 용)
GAC에 어셈블리를 설치하는 방법 (관리자 권한)
1) 드래그 앤 드롭
2) Visual Studio 명령 프롬프트와 함께 GacUtil.exe 사용
gacutil -i [Path][Assembly Name].dll
GAC에서 어셈블리를 제거하는 방법 (관리자 권한)
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh