저는 GAC를 처음 사용하기 때문에 사용해야 할 때와 사용하지 말아야 할 때를 대비하려고합니다. 여기에 내 상황이있다 :GAC를 언제 사용합니까?
나는 다른 상용 제품에 주로 추가 기능 소프트웨어를 개발하여 제품이 내 제품을 코드에로드하도록한다. 모든 응용 프로그램 (예 : 라이센스 모듈)에서 사용하는 여러 가지 어셈블리가 있습니다. 이러한 라이브러리의 .dll 파일은 기본 응용 프로그램 디렉터리에 설치되어 부모 프로그램이 해당 프로그램을로드합니다.
문제는 사용자가 내 소프트웨어 타이틀 두 개를 설치했을 때 부모 프로그램이 버전에 관계없이 찾은 어셈블리의 첫 번째 복사본 만로드하기 때문에 충돌이있을 수 있다는 것입니다. 따라서 License1.0.dll이 포함 된 Software A 버전 1.0과 License1.0.dll과 다른 메소드 및/또는 인수가있는 License 2.0이 포함 된 Software B 버전 2.5가있는 경우 1.0을로드 한 다음 예외를 throw합니다. 올바른 라이센스 방법을 찾을 수 없기 때문에 소프트웨어 B.
초기 연구에서 GAC가이 문제에 대한 답이되도록 의도 된 것 같았고 여러 사이트가 그렇다고 말하는 것 같았지만 this subject과 그 링크가 사용하지 않는 것으로 보이는 것 같습니다 이것에 대한 GAC.
나는 혼란 스럽다. GAC를 사용하여 조사해야하는 경우 누군가가 직접지도를 할 수 있습니까?
GAC를 사용하면 더 많은 문제가 발생할 것입니다. 소비하는 응용 프로그램과 같은 소리는 구성 파일의 어셈블리 리디렉션을 통해 또는 컴파일 타임에 참조의 특정 경로를 설정하여 올바른 버전 DLL을 가리 키도록 구성해야합니다. 나는 그 대답이 무엇인지에 대해 확신하지는 않는다. – TyCobb
불행히도 부모 응용 프로그램을 제어 할 수는 없지만 .NET 어셈블리를로드하는 단일 응용 프로그램의 표준 동작은 이해할 수 있습니다. I.E. 3 개의 개별 응용 프로그램을 실행하면 별개의 도메인에로드되어 문제가 발생하지 않지만 3 개의 응용 프로그램은 단일 응용 프로그램 (및 도메인) 아래에로드되므로 하나의 복사본 만로드합니다. 다시 나는 이것에 상당히 새롭기 때문에 나는 틀릴지도 모른다 그러나 나의 이해이다 ... – sfaust
주인이 배치를 맡고있는 것처럼 보이면 글쎄, 그것은 당신이이 변화를 만들 때까지 달려 있지 않다. 민감한 문제는 누구나 손쉽게 라이센스를 시행 할 수 있도록하는 것입니다. 이 문제를 해결하기 위해 GAC로 쉽게 넘어갈 수 있습니다. 매우 간단합니다. 이름이 강력해야합니다. 아마도 설치 프로그램 작성을 고려해야합니다. –