Spring CodeConfig ScanAllAssemblies throws a ReflectionTypeLoadException
我正在尝试新的Springcodeconfig for.net,但是有很多问题。
我在现有的.NET 4项目中安装了nuget包spring.codeconfig,但除了遇到问题外,什么都没有。
scanalAssemblies方法在运行此代码时引发ReflectionTypeLoadException:
1 2 3 |
即使我没有定义任何配置类,也会发生这种情况,但是如果我创建了一个配置类,也会发生这种情况。
loaderExceptions属性包含此消息的单个异常:
0我试图添加一个从1.0.3300.0版系统到4.0.0.0.0版的程序集重定向,这是我的项目中引用的版本,但这不起作用。
如何解决此问题?
根据要求,以下是有关项目的参考资料:
- mscorlib,version=4.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089
- ploeh.samples.menumodel,version=1.0.0.0,culture=neutral,publicKeyToken=null
- spring.aop,version=1.3.1.40711,culture=neutral,publickeytoken=65e474d141e25e07
- spring.core,version=1.3.1.20711,culture=neutral,publickeytoken=65e474d141e25e07
- spring.core,version=1.3.1.40711,culture=neutral,publickeytoken=65e474d141e25e07
- spring.core.configuration,version=1.0.0.4111,culture=neutral,publickeytoken=65e474d141e25e07
- 系统,版本=4.0.0.0,区域性=中性,publickeytoken=b7a5c561934e089
- system.core,version=4.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089
- system.xml,version=4.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089
- system.xml.linq,version=4.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089
- Xunit,版本=1.7.0.1540,区域性=中性,PublicKeyToken=8d05b1b7a6fdb6c
由于第二个引用是一个项目引用,我还列出了它的依赖项:
- mscorlib,version=4.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089
- system.core,version=4.0.0.0,culture=neutral,publickeytoken=b7a5c561934e089
我的app.config中也有这些绑定重定向,以防发生问题:
1 2 3 4 5 6 7 8 9 | <dependentAssembly> <bindingRedirect oldVersion="1.3.1.20711" newVersion="1.3.1.40711" /> </dependentAssembly> <dependentAssembly> <bindingRedirect oldVersion="1.0.3300.0" newVersion="4.0.0.0" /> </dependentAssembly> </assemblyBinding> |
然而,这两种方法都试图解决codeconfig的问题。移除它们没有帮助…
经过一些调查,我们将这一问题确定为4.0 clr下的ReflectionOnlyLoad API。
codeconfig程序集扫描在2.0 clr下工作,但显然,尽管.NET 3.5和.NET 4.0之间的ReflectionOnlyLoad API没有明显变化,但在ReflectionOnlyLoad处理依赖程序集的方式(或者更准确地说,我们以编程方式解析Reflection的类型的方式)上似乎存在行为差异。OnOnlyLoad API在.NET 4.0下)。
Spring.net团队现在正在开发一个快速更新的codeconfig(1.0.1)版本,该版本应该能够正确地解决这个问题,并允许它在.NET 4.0下成功使用。感谢您引起我们的注意!