我有一个正在 VS2010 中开发的应用程序,并通过配置文件使用 Castle-Windsor IoC。
我正在注册的组件之一,也是在 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 中注册,这可以正常工作,但是,它似乎确实忽略了其他指令。
谢谢!