大家好,我有一个 ASP.NET 网站项目,出于某种原因坚持引用 mscorlib 1.0.5 和 mscorlib 2.0,但我不明白为什么。
我已经使用 NDepend 分析了所有引用的 DLL,它们似乎都只引用了 mscorlib 2.0。我有几个 Web 引用,但我无法想象为什么这会创建对 1.0 dll 的额外引用。
任何人都知道为什么我会得到这个额外的引用,或者我可以用什么来找到这些信息? NDepend 很棒,但只是回来说“找到 2 个引用,使用较新的版本”,所以它无法帮助我弄清楚为什么我有额外的引用...
最佳答案
我认为此时您最好的选择是使用 ildasm。在程序集上使用 ildasm 将调出一个名为“Manifest”的节点。双击该节点,它将转储出程序集引用的 IL 表示,包括引用的版本号。对所有 DLL 重复此操作,直到找到引用 1.0 版本的那个。
编辑
另一种可能的解决方案是枚举 Assembly
值和关联的 GetReferencedAssemblies
方法。这将返回一组 AssemblyName
值,这些值具有相应的 Version 成员。这应该包含引用程序集的实际版本与实际加载的版本。
我不是 100% 确定这件事,现在也没有方便的方法来测试它。
关于c# - 确定项目对 mscorlib 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2088526/