确定项目引用MSCORLIB
题
嗨伙计们,我有一个ASP.NET网站项目,由于某种原因却是坚持要引用两个mscorlib程序1.0.5和2.0 MSCORLIB,我想不通为什么。
我使用NDepend的分析所有被引用的DLL,并且它们似乎都只能引用mscorlib程序2.0。我有一对夫妇的Web引用,但我无法想象,为什么会创建一个额外的参考1.0 DLL。
任何人有任何想法,为什么我会得到这个额外的参考,或有什么我可以用它来找到这些信息? NDepend的是伟大的,但刚回来,说:“发现2个参考,使用较新版本”,所以它并不能帮助我弄清楚为什么我有多余的参考...
解决方案
我觉得在这一点上你最好的选择是使用ILDASM。在装配使用反汇编将弹出一个名为“清单”节点。该节点上双击,它会转储程序集引用的IL表示,包括引用的版本号。直到找到一个引用1.0版本重复此为您所有的DLL的。
修改强>
另一种可能的解决方案将是枚举值Assembly
并且存在相关联GetReferencedAssemblies
方法。这将返回其具有相应的版本构件AssemblyName
值的阵列。这应该包含引用的装配与实际被加载的一个实际的版本。
我不是100%确定这件事情,并没有一个便捷的方式,现在对它进行测试。
其他提示
尝试取出参考,并重新编译 - 这会告诉你什么(如果有的话)依赖于旧版本的
这是错误的,可以参考驻留在你的web.config文件。
善,
丹
不隶属于 StackOverflow