1. ホーム
  2. c#

[解決済み] .NET 4.0 プロジェクトで .NET 2.0 混合モード アセンブリを参照するために必要な「追加設定」は何ですか?

2022-03-18 09:37:28

質問事項

私は、.NET 4.0の機能のいくつかを使用したいプロジェクトを持っていますが、コア要件は、2.Xに対してコンパイルされているSystem.Data.SQLiteフレームワークを使用できるようにすることです。 ここで認められている答え しかし、実際にこれを実現する方法がわかりません。

2.Xのアセンブリを参照しながら4.0のプロジェクトを実行しようとすると、次のようなメッセージが表示されます。

混合モードアセンブリは、ランタイムのバージョン 'v2.0.50727' に基づいてビルドされています。 4.0ランタイムでは、追加設定なしでロードできません。 設定情報

どのような追加設定が必要ですか?

解決方法は?

CLR2.0を使用するために ミックスモードアセンブリ を含めるために、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 2 アセンブリをロードできます。 app.config .