6

我有一个构建活动,它反映了我们的一个库,以将其与域定义进行比较。在反射期间,每当我尝试反射 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 上失败了。有任何想法吗?

4

2 回答 2

0

我认为存在版本控制问题,如果您使用项目中使用的不同版本的 dll,则可能会发生此类错误。

这是一个过去对我有用的简单解决方案,如果有同样的问题,它将对你有用。您可以通过定义有问题的 dll 的新旧版本在 web.config中使用“ bindingRedirect ”标签。所以这意味着它将忽略旧版本的 dll 引用并在找到时使用较新的引用。并且不会产生错误。

这是参考链接。 http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx

于 2013-03-19T10:20:48.207 回答
0

你需要使用 IKVM.Reflection 之类的东西,

http://weblog.ikvm.net/PermaLink.aspx?guid=d0dc2476-471b-45f3-96bf-a90bc2f5800b

Microsoft 的反射与托管的 .NET Framework 相关联,因此您无法根据需要加载旧版本的核心库。

于 2013-03-19T12:18:16.080 回答