문제

내 프로젝트는 다른 어셈블리를 참조하는 어셈블리 (x라고 부름)를 참조합니다 (y라고합니다).

프로젝트를 컴파일하려고 할 때 조립 Y를 참조해야합니다. 왜 그런가? 어셈블리 X가 참조되는 줄에 다음 오류가 발생합니다.

'devexpress.xtraeditors.xtraform'유형은 참조되지 않은 어셈블리에 정의됩니다. 어셈블리 'devexpress.utils.v9.1, 버전 = 9.1.2.0, Culture = Neutral, PublicKeyToken = B88D1754D700E49A'에 대한 참조를 추가해야합니다.

DevExpress.XtraEditors.XtraForm 어셈블리 Y입니다.

왜 이런거야? 나는 전에이 행동을 보지 못했습니다.

도움이 되었습니까?

해결책

이것은 항상 제자리에있었습니다. 어셈블리 Y에서 메소드/속성/멤버 등을 얻는 객체를 사용하는 경우 컴파일 시간에만 이러한 정보를 얻을 수 있습니다.

.NET가 어셈블리 X에 의존 할 수 없기 때문에 적절한 기호 및 메타 데이터 정보를 얻을 수 있기 때문입니다.

다른 팁

이것은 모든 종속성에 대한 참조가 없다면 컴파일러가 프로젝트를 어떻게 구축 할 것인가?

귀하의 프로젝트에서 참조 된 어셈블리는 신청서가 작동하려면 필요합니다. 해당 어셈블리의 유형을 사용하고 있으며 이러한 유형이 없으면 응용 프로그램을 구축 할 수 없습니다. 더 중요한 것은 이러한 유형이 없으면 응용 프로그램을 실행할 수 없습니다.

이제 귀하가 참조하는 모든 어셈블리가 귀하의 어셈블리와 동일한 방식으로 지어졌으며 그것의 참조 된 어셈블리가 참석하고 설명됩니다. 이로 인해 성가신 연쇄 반응이 발생하지만 최종 결과는 응용 프로그램을 실행하면 CLR에는 응용 프로그램을 실행하는 데 필요한 모든 어셈블리가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top