У меня есть приложение, которое разрабатывается в VS2010 и использует IoC Castle-Windsor через файл конфигурации.
Один из регистрируемых мной компонентов, также разработанный в VS2010, ссылается на компонент .net 2.0 (LeadTools), поэтому перекомпиляция проекта 2.0 невозможна. Когда регистрация компонента обертки завершена, возникает «ComponentActivatorException», которое оборачивает «System.TypeInitializationException», которое, в свою очередь, оборачивает «System.IO.FileLoadException» с сообщением «Сборка смешанного режима создается против версии v2 .0,5027 'среды выполнения и не могут быть загружены в среде выполнения 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>
Это прекрасно работает, если компонент обертки не зарегистрирован в Виндзоре, однако в противном случае он игнорирует директивы.
Спасибо!