2012-04-27 6 views
3

.NET Framework 3.5を使用すると完全に動作するアセンブリがありますが、4で使用するとアセンブリをロードできないというエラーが発生します。誰もがこの問題の解決策を知っていますか? (私はとにかくアセンブリを変更することはできませんまたはこれは、アプリケーションの目的を削除するため、プロジェクトのターゲットフレームワークを変更する)プログラミングコードはC#です。4で3.5アセンブリを使用する

基本的に:私は.NET 4フレームワークでアプリケーションを作成していますが、アセンブリは互換性がありません。

エラーが発生しました:混在モード付きアセンブリは、ランタイムバージョンv2.0.50727で作成され、ランタイムバージョン4.0で余分な構成情報なしでロードすることはできません。

+2

**正確**のエラーメッセージとは何ですか? –

+0

"アセンブリとのアセンブリは、ランタイムでv2.0.50727と互換性があり、ランタイムでは構成情報プログラムの言語が変更されていません。 翻訳済み:混在モード付きアセンブリはランタイムバージョンv2.0.50727で作成され、ランタイムバージョン4.0で追加の構成情報なしでロードすることはできません – Metabie

答えて

6

最高おそらく2010(すなわち開放プロジェクトは、それを変換し、ターゲットフレームワークを変更する。)

できない場合のVisual Studioで.NET 4.0のためにあなたのクラスライブラリを再コンパイルするだろう、そうでない場合は、.NET 4.0アプリケーションのapp.configファイルに以下を追加してみてください:

この設定をapp.configに追加してください。

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

キーは、useLegacyV2RuntimeActivationPolicyフラグです。これにより、CLRが最新バージョン(4.0)を使用して混在モードアセンブリを読み込みます。これがなければ、動作しません。

これは、混在モード(C++/CLI)アセンブリでのみ重要であることに注意してください。管理対象のすべてのCLR 3.5アセンブリをapp.configで指定することなくロードできます。

関連する問題