2013-12-13 7 views
4

나는 클래스 라이브러리를 구축 중입니다. 이 라이브러리는 GAC에 배포됩니다.내 DLL을 GAC에 배포, 참조 GAC에없는 다른 DLL

내 라이브러리에 일부 외부 종속성에 대한 참조가 있습니다. 종속성은 GAC에 배포 할 수 없습니다.

내 라이브러리를 배포하고 사용하면 종속성을로드 할 수 없다는 불만이 있습니다.

제 3 자 DLL을 어셈블리에서 참조 할 수 있도록 어떻게 배포합니까?

답변

1

어셈블리를 GAC에 추가하려면 해당 어셈블리에 대한 모든 참조를 GAC에도 가질 필요는 없습니다. 따라서 어셈블리를 사용하는 응용 프로그램이 모든 참조를 찾을 수 있다면 아무런 문제가되지 않습니다.

따라서 모든 어셈블리를 개인적으로 (응용 프로그램과 같은 폴더에) 배포하거나 해당 GAC에 배포하고 해당 교환 어셈블리 만 개인 배포하십시오.

UPDATE

응용 프로그램을 구축 한 아니지만 단지 라이브러리를 제공하는 경우에도 동일한 규칙이 적용됩니다.

GAC처럼 작동하지만 GAC가 아닌 다른 중앙 폴더를 가질 수있는 방법은 없습니다.

라이브러리 사용자는 최소한 해당 어셈블리를 응용 프로그램과 함께 개인적으로 배포해야합니다. 라이브러리를 제공하고 라이브러리의 사용자가 배포를 수행하는 경우에도 아무런 문제가 없습니다.

설치 프로그램을 제공하고 모든 응용 프로그램에 적어도 응용 프로그램과 함께 어셈블리를 제공하지 않아도 라이브러리를 사용할 수는 없습니다. 대개 .Net 응용 프로그램에서는 문제가되지 않습니다. GAC를 사용하지 않으면 기본적으로 'xcopy deployment'가 설치됩니다.

물론 다른 솔루션은 해당 어셈블리에 의존하지 않을 것입니다.

+0

그 반대의 경우입니다. 내 응용 프로그램은 GAC에 배포 할 수없는 DLL에 따라 다릅니다. 응용 프로그램 폴더가 없습니다. – CamronBute

+0

응용 프로그램 폴더가 없다는 것은 무엇을 의미합니까? exe는 어디에 두 시나요? 또는 webapp 인 경우 bin 폴더는 어디에 있습니까? –

+0

어셈블리가 GAC에 배포됩니다. 종속성은 "c : \ stuff"에 앉아 있다고 가정합니다. – CamronBute