2016-08-01 2 views
0

내 솔루션에는 2 개의 프로젝트가 포함되어 있습니다.혼합 모드 C++/CLI System.IO.FileLoadException

첫 번째 프로젝트는 C++ Win32 응용 프로그램이고 두 번째 프로젝트는 나로 인해 작성되지 않은 다른 두 C# 라이브러리를 관리하는 C# 라이브러리입니다. 이 배후의 아이디어는 이러한 다른 2 개의 C# 라이브러리를 처리하는 C# 라이브러리를 작성하는 것이 었습니다.

이제이 C# 라이브러리는 .NET 3.5 용으로 제작되었으며 .NET 3.5 용으로 빌드 할 C# 프로젝트도 설정했습니다.

저는 C++ Wrapper를 만들었습니다. 매우 효과적입니다. 이 문제는 다른 C# 라이브러리가 다른 2 개 라이브러리 중 하나에서 가져 오는 클래스의 개체를 만들려고 할 때 나타납니다.

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. 

이제이 문제가 게시 된 12 개의 게시물을 살펴 보았습니다. 그들 중 누구도 내 문제를 해결하지 못했습니다. 내 실행 파일 (내 C + + 프로젝트)에 대한 몇 가지 다른 구성 파일뿐만 아니라 내 C#을 라이브러리로 시도했다.

나는 모두

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    <supportedRuntime version="v2.0.50727"></supportedRuntime> 
    </startup> 

그리고 여러 가지 다른 것들을 시도했습니다.

+0

시도 사방 .NET의 동일한 버전을 사용하는 ... – Phil1970

+0

을 당신은 그 오류 메시지에 대한 더 많은 관심을해야한다. 3.5를 대상으로한다고 말하면서 .NET 4가 사용되고 있음을 오류가 명확하게 보여줍니다. 이는 이미 사용중인 .exe.config 파일이 있고 작성한 파일이 아닌 경우에만 발생할 수 있습니다. 귀하의 VS 버전은 아주 오래되어서 업데이트 할 시간입니다. –

+0

@ Phil1970 필자는 .NET 3.5 for all for C# 관련 – Sean

답변

0

프로젝트에 v2.0.50727 dll이있는 것 같습니다.

편집하여 app.config 파일을 추가합니다 :이 시도

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration>