VS2010 で開発されているアプリケーションがあり、構成ファイルを介して Castle-Windsor IoC を利用しています。
私が登録しているコンポーネントの 1 つは、これも VS2010 で開発されたもので、.net 2.0 コンポーネント (LeadTools) を参照しているため、2.0 プロジェクトを再コンパイルすることはできません。ラッピング コンポーネントの登録が完了すると、「ComponentActivatorException」が発生し、「System.TypeInitializationException」がラップされ、「System.IO.FileLoadException」がラップされ、「混合モード アセンブリはバージョン 'v2 に対してビルドされています」というメッセージが表示されます。ランタイムの .0.50727' であり、追加の構成情報なしでは 4.0 ランタイムにロードできません。"
次のように、ランタイム宣言をアプリケーションの構成ファイルに追加しました。
<!-- useLegacyV2RuntimeActivationPolicy is needed for LEADTools-->
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727" />
</startup>
これは、ラッピング コンポーネントが Windsor に登録されていない場合は正常に機能しますが、それ以外の場合はディレクティブを無視しているように見えます。
ありがとう!