.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
。