3

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

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

次のエラー: 混合モードのアセンブリはランタイムからバージョン v2.0.50727 で作成され、ランタイム バージョン 4.0 では追加の構成情報なしではロードできません。

4

1 に答える 1

6

おそらく最善の方法は、Visual Studio 2010 で .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) アセンブリでのみ問題になることに注意してください。app.config でこれを指定しなくても、すべてのマネージ CLR 3.5 アセンブリを読み込むことができます。

于 2012-04-27T08:27:42.080 に答える