.NET 4.0 プロジェクトで .NET 2.0 混合モード アセンブリを参照するには、どのような「追加構成」が必要ですか? 質問する

.NET 4.0 プロジェクトで .NET 2.0 混合モード アセンブリを参照するには、どのような「追加構成」が必要ですか? 質問する

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

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

混合モード アセンブリは、ランタイムのバージョン 'v2.0.50727' に対して構築されており、追加の構成情報なしでは 4.0 ランタイムに読み込むことはできません。

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

ベストアンサー1

CLR 2.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

おすすめ記事