문제

프린터 장치와 인터페이스하는 제 3 자 혼합 모드 어셈블리를 사용합니다.

응용 프로그램 중 하나에서 어셈블리는 올바르게 작동합니다.

다른 응용 프로그램에서는 다음 예외를 생성했습니다.

Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.
.

일부 연구를 수행 한 후에는이 문제를 해결하기 위해 다음을 App.config 파일에 추가 할 수 있음을 발견했습니다.

<startup useLegacyV2RuntimeActivationPolicy="true">
.

(이미 작동하는 응용 프로그램은 App.config 에서이 설정을 가졌습니다)

이렇게했지만 "혼합 모드 어셈블리"문제가 해결되었지만 이제는 다소 다른 문제가 있습니다.

External component has thrown an exception
.

이상한 것은 제대로 작동하는 하나의 응용 프로그램과 그렇지 않은 다른 응용 프로그램이 있습니다. 둘 다 동일한 코드를 통해 타사 어셈블리를 호출합니다 (우리 어셈블리 중 하나 인 것).

동일한 코드 경로를 사용하여 타사 어셈블리를 호출하는 매우 간단한 테스트 응용 프로그램을 만들고 "외부 구성 요소가 예외를 throw하는"오류와 함께 실패했습니다.

모든 응용 프로그램에 대한 app.config 파일을 비교했으며 본질적으로 동일하며 모든 빌드 설정 모두가 각각에 대해 동일하다는 것을 두 번 확인했습니다. 두 프로젝트는 .NET 4.0 및 x86을 대상으로합니다.

두 가지 응용 프로그램에 대해 분명히 다른 것이 있지만 그것이 무엇인지를 식별 할 수있는 손실이 있습니다.

개발 환경은 Visual Studio 2010입니다.

누구도 내가 조사 할 수있는 다른 영역에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

@tsells는 맞았습니다 : 누락 된 종속성이있었습니다

문제의 제 3 자 어셈블리는 첫 번째 응용 프로그램 BIN 폴더에있는 다른 DLL에 의존했습니다.

작업 응용 프로그램의 bin 폴더에서 작업하지 않는 응용 프로그램의 bin 폴더로 모든 파일을 복사하고 문제를 해결했습니다.

거기에서 두 번째 응용 프로그램 프로젝트에서 누락 된 DLL이 누락 된 것을 추론하는 문제 일뿐입니다.

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