2

大家好,我有一个 ASP.NET 网站项目,出于某种原因,它坚持引用 mscorlib 1.0.5 和 mscorlib 2.0,我不知道为什么。

我已经使用 NDepend 分析了所有引用的 DLL,它们似乎都只引用了 mscorlib 2.0。我有几个网络参考,但我无法想象为什么会创建对 1.0 dll 的额外参考。

任何人有任何想法为什么我会得到这个额外的参考,或者我可以用什么来找出这些信息?NDepend 很棒,但只是回来说“找到 2 个参考,使用较新的版本”,所以它不能帮助我弄清楚为什么我有额外的参考......

4

3 回答 3

2

我认为此时你最好的选择是使用 ildasm。在程序集上使用 ildasm 将打开一个名为“Manifest”的节点。双击该节点,它将转储程序集引用的 IL 表示,包括引用的版本号。对所有 DLL 重复此操作,直到找到引用 1.0 版本的那个。

编辑

另一种可能的解决方案是枚举Assembly值和相关的GetReferencedAssemblies方法。AssemblyName这将返回一个具有相应版本成员的值数组。这应该包含引用程序集的实际版本与实际加载的程序集。

我对这件事不是 100% 确定的,现在也没有方便的方法来测试它。

于 2010-01-18T19:12:00.480 回答
0

错误的引用可能存在于您的 web.config 文件中。

善良,

于 2010-01-18T19:11:43.710 回答
0

尝试删除引用并重新编译 - 这将告诉您什么(如果有的话)取决于旧版本。

于 2010-01-18T19:09:34.290 回答