我有一个构建活动,它反映了我们的一个库,并将其与域定义进行比较。在反射期间,每当我试图反映Uri时,它返回为RunTimePropertyInfo而不是Uri,每当我检查任何反射属性时,我都会得到一个异常,说明…
"Could not load file or assembly 'System, Version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e, retargetable=yes"
构建活动使用System.dll版本4.0.0.0进行编译。我怀疑这就是问题所在。是否有一种方法可以让我在旧版本的System.dll上反映类型。
到目前为止,这只在Uri上失败了。什么好主意吗?我认为有版本问题,如果你使用的是在项目中使用的不同版本的dll,在这种情况下,这种错误可能发生。
这是一个简单的解决方案,我在过去的工作,它将适用于你,如果有同样的问题。你可以在web中使用"bindingRedirect"标签。通过定义有问题的dll的新旧版本来配置。因此,这意味着它将忽略旧版本的DLL引用,并使用较新的,如果找到。并且不会产生错误。
是参考链接。http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx
您需要使用IKVM之类的东西。反射,
http://weblog.ikvm.net/permalink.aspx?guid=d0dc2476 - 471 b - 45 - f3 - 96 - bf - a90bc2f5800b
微软的反射绑定到宿主的。net框架,所以你不能像希望的那样加载旧版本的核心库。