繁体   English   中英

反映旧版本的System.dll

[英]Reflecting an older version of System.dll

我有一个构建活动,它反映了我们的一个库,以便将它与域定义进行比较。 在反射过程中,每当我尝试反映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,则可能会发生此类错误。

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

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

你需要使用像IKVM.Reflection这样的东西,

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

Microsoft的反映与托管的.NET Framework相关联,因此您无法像希望的那样加载旧版本的核心库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM