2008-10-03 13 views
1

다른 어셈블리 (B)를 참조하는 어셈블리 (A)가있는 경우. 프로젝트에서 A를 참조하려면 참조를 추가하고 A를 내 BIN 디렉토리에 복사합니다. A가 그것에 의존하더라도 B를 복사하지 않으므로 코드가 컴파일되지 않습니다. A를 참조 할 때마다 A와 B가 모두 bin 디렉토리로 복사되도록 설정할 수 있습니까?.Net 프로젝트와의 어셈블리 종속성

답변

4

Visual Studio에서 각 프로젝트를 동일한 솔루션에 추가하십시오. 직접 파일 참조 대신 프로젝트 참조를 사용해야합니다 (즉, 어셈블리 찾아보기). 난 당신이 명시 적으로 모두 추가하는 것 이외의 무엇을 물어 주위에 어떤 방법이 있다고 생각하지 말아 A와 B

+0

이것은 매우 편리한 해결책이지만, 불행히도 잘 확장되지 않습니다. 당신이 수십 개의 프로젝트를 갖는 데까지 성장한다면, 적재물 및 건물의 적재가 느려집니다. http://www.simple-talk.com/dotnet/.net-framework/partitioning-your-code-base-through-.net-assemblies-and-visual-studio-projects/ 및 관련 기사를 참조하십시오. FYI – Pat

1

참조. 나는 복사되지 않은 참조를 얻기 위해 프로젝트를 추가하는 것이이 문제에 대한 실행 가능한 해결책이라고 생각하지 않는다. 솔루션이 의존하는 모든 프로젝트가 반드시 솔루션에 추가되어야하는 것은 아닙니다. 이것은 전반적인 프로젝트 구조, 프로세스, 소스 제어, 노동 부문 등에 완전히 반대 할 것입니다.

0

불행히도 수동으로 추가해야합니다. 이것은 NHibernate의 3.5 이전 버전을 사용할 때마다 나에게도 일어납니다. log4net과 Iesi.Collections 어셈블리가 모두 필요합니다. 그래서 나는 NHibernate를 구현하는 모든 솔루션에 수동으로 두 가지에 대한 참조를 포함 할 수 밖에 없습니다.

DLL 만있는 경우 문제가 더 많습니다. Visual Studio 코드베이스를 가지고있는 프로젝트라면 참조가 누락되었음을 미리 경고합니다.

+0

분명히 Telerik 컨트롤이있어 dll을 찾아 추가 할 때 필요한 여러 어셈블리가 추가됩니다. 나는 그것을 보지 못했고 다른 프로그래머가 들었다. 가능성이 있는지 알기위한 좋은 트릭이 될 것입니다. –

0

글로벌 어셈블리 캐시에 추가하는 방법은 어떻습니까?