2016-08-01 24 views
0

私の解決策には2プロジェクトが含まれています。混合モードC++/CLI System.IO.FileLoadException

最初のプロジェクトはC++ Win32アプリケーションで、2番目のプロジェクトは、私が作成したものではない2つの他のC#ライブラリを管理するC#ライブラリです。この背後にある考え方は、これらの他の2つのC#ライブラリを処理するC#ライブラリを構築することでした。

これらの2つの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. 

ここでは、この問題が投稿された数十の記事を探しています。彼らの誰も私の問題を解決しませんでした。私は私の実行可能ファイル(私の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をすべてのC#に使用しています – Sean

答えて

0

あなたのプロジェクトには、いくつかのv2.0.50727 dllがあるようです。このお試しください:

編集あなたのApp.configファイルを追加し、:

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 
関連する問題