我有一个构建活动,它反映了我们的一个库,以将其与域定义进行比较。在反射过程中,每当我尝试反射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失败了。有什么想法吗?
发布于 2013-03-19 18:20:48
我认为存在版本控制问题,如果您使用项目中使用dll的不同版本,在这种情况下可能会发生这样的错误。
这里有一个简单的解决方案,过去对我很有效,如果有同样的问题,它也会对你起作用。您可以通过定义问题动态链接库的旧版本和新版本,在web.config中使用"bindingRedirect“标记。因此这意味着如果found.and不会产生错误,它将忽略dll引用旧版本,而使用新版本的dll引用。
这里是参考链接。http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx
发布于 2013-03-19 20:18:16
你需要使用像IKVM.Reflection这样的东西,
http://weblog.ikvm.net/PermaLink.aspx?guid=d0dc2476-471b-45f3-96bf-a90bc2f5800b
微软的反射与托管的.NET框架捆绑在一起,因此您不能根据需要加载较旧版本的核心库。
https://stackoverflow.com/questions/15479667
复制相似问题