2010-08-13 4 views
2

.NET 4.0으로 프로젝트를 만들었습니다. 나는 2.0으로 다시 변환하는 것이 괴로운 코드를 많이 가지고있다..NET 4.0 솔루션에서 .NET 2.0 어셈블리를 링크하는 방법

.NET 2.0으로 빌드 된 DLL을 가져 오려고합니다. 해당 DLL에서 코드를 실행하려고 시도 할 때까지 모든 것이 작동합니다. 그것은

File Type: DLL 

    Section contains the following imports: 

    mscoree.dll 
       402000 Import Address Table 
       4057F0 Import Name Table 
        0 time date stamp 
        0 Index of first forwarder reference 

        0 _CorDllMain 

그래서 내 여기 추측 DLL이로드하려고한다는 것입니다,하지만이 가질 수있는 지정된 모듈이나 내가 어떤 종속성 확인 DUMPBIN.EXE 사용

종속성 중 하나를로드 할 수 있다고 버전 2.0에서 mscoree.dll이를 발견하고, 따라서 예외를 제기 할 수 없다.

는 지금

Assembly asm = Assembly.LoadFrom(dllPath); 

비주얼 스튜디오 디버거를 수동으로 대상 모듈을로드로드로 모듈을 나열했지만, 여전히 그것을 액세스 할 수 없습니다. Windows 검색은 수십 개의 "mscoree.dll"을 c : \ windows 디렉토리에 흩어져보고하므로 수동으로로드하는 것에 대해서는 회의적입니다.

답변

3

문제를 진단하는 데 거의 근접하지 않습니다. Dumpbin.exe에는 관리되는 어셈블리에 대해 표시되지 않는 내용이 표시되지 않습니다. 이 문제는 CLR 종속성을 혼합 할 때 발생하는 문제도 아닙니다.

fuslogvw.exe를 사용하여 종속성을 확인하십시오.

1
  1. 모든 종속성을 찾아서 시작하십시오. 당신이 여기에 열거하지 않았다는 사실은 골치 아픈 일입니다.
  2. 위의 모든 종속성을 응용 프로그램에서 직접 참조 했습니까?
관련 문제