MSB3258:mscorlib 4.0.0.0 和 2.0.0.0

MSB3258: mscorlib 4.0.0.0 and 2.0.0.0

所以我正在尝试在 VS 2017 上编译一个项目,我得到了这个:

 warning MSB3258: The primary reference "someLib.dll" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.

在那之后,我遇到了与此 dll 相关的错误(例如,类型或命名空间不在命名空间中),但是当我双击错误时它消失了,代码中的红色波浪线也消失了,暗示这不是真正的问题。

我尝试过的都不起作用:所有项目都在 3.5 上,我删除并重新添加了所有引用,除了我自己的计算机外,其他任何计算机都没有发生这种情况。我也尝试从 GAC 中删除 mscorlib(无论多么愚蠢),但它当然不会让我。

我看到了一些可能相关的内容: https://developercommunity.visualstudio.com/content/problem/230636/assemblydependency-now-misidentifying-indirect-dep.html

除了删除并重新安装 VS,不知道还能做什么。 如果有人有任何想法,我很乐意尝试。

来自评论的回答:

检查库 someLib.dll 引用。也许它们包含对 mscorlib.dll 4.0.0.0.

的引用

提示:通过Via Add Reference > "Assemblies tab"添加微软官方库(左边,不知道标签名是否正确)。不要通过浏览来添加它们。

这是对 Interop 版本的奇怪引用。Shell32.dll 称为 "Shell32.dll"。不知道从哪里来的。

如果其他人遇到此问题:一次删除每个依赖项并编译。甚至微软的。