2012-02-25 5 views
2

ターゲットプラットフォームがx86に設定されたVS 2010でビルドされたC#WPFアプリケーションがあります。このexeは、ターゲットプラットフォームANYCPUを持つマネージドDLLを呼び出します。マネージDLLは、共通言語ランタイムサポート(/ clr)オプションでコンパイルされたC++ DLLへの参照を持っています。.NET 4 vs .NET 3.5 C#アプリケーションファイルまたはアセンブリ 'x'またはその依存関係の1つを読み込めませんでした。指定されたモジュールが見つかりません

.NET 3.5では、このアプリケーションはどのOSでも完全に動作します。 Win 7でも32ビットと64ビットの両方でうまく動作します。

アプリケーションとそのDLLを.NET 4に変換するようになったので、4未満の.NETで実行すると、.NET 4が必要なエラーがスローされます。

変換されたアプリケーションは、開発システムと.NET 4 + .NET 3.5を備えたシステムで正常に動作します。ここまでは順調ですね!

しかし、.NET 3.5(つまりWin 8)のみのシステムでは、.NET 3.5を使用しないで勝利します。 ファイルまたはアセンブリ 'x'またはその依存関係の1つを読み込めませんでした。指定されたモジュールが見つかりませんでした。

「x」は、言語ランタイムサポート(/ clr)オプションでコンパイルされたC++ dllです。

つまり、この問題は、.NET 4のみのシステムでのみ発生します。

アドバイスをいただければ幸いです。 ありがとうございました - Kam

答えて

0

.NET 4はすべての以前のバージョンと互換性があります。だから、問題はプラットフォームのバージョンではないようです。それはフォルダのセキュリティかもしれない?権限を確認してみてください。

+0

ご回答ありがとうございます。私はフォルダの管理者権限を持っています。私はそれが問題だとは思わない。 –

0

これを解決するには、.NET 4.以来、ネイティブコードの読み込みポリシーの変更がありました、以下の内容で、あなたのEXEプロジェクトにApp.configファイルを追加してください:

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    </startup> 
</configuration> 

この議論をするもヘルプ:What does 'useLegacyV2RuntimeActivationPolicy' do in the .NET 4 config?

+0

私のapp.configファイルにこの設定があります。だから、問題は他のものでなければならない。 –

関連する問題

 関連する問題