c# - 确定项目对 mscorlib 的引用

标签 c# asp.net reference mscorlib

大家好,我有一个 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/

相关文章:

c# - Winforms 设计器 : How to disable my usercontrol from being a container?

c# - 给定键值对等生成查询字符串的任何 .NET 类

.net - 如何在 ASP.NET MVC 中创建 CheckBoxListFor 扩展方法?

c# - 枚举解析 C++ 或模拟

c# - 无法使用脚本从空游戏对象获取变量

c# - MVC 中的 OnInit 和 Session

asp.net - Request.ServerVariables ["REMOTE_ADDR"] 和 Request.UserHostAddress 之间有什么区别?

java - Java 中引用的概念问题

C++ lambda指针/引用内存占用之争

Java JNI 引用类型,传递 ByteBuffer