MSB3258: mscorlib 4.0.0.0 and 2.0.0.0

3

我正在尝试在VS 2017上编译一个项目,但是我遇到了这个问题:

Original Answer(最初的回答):

 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引用了哪些库? - undefined
这不是BouncyCastle。我现在正在检查log4net。 - undefined
你是怎么将Microsoft库添加到项目中的?是通过“添加引用”>“程序集选项卡”还是通过浏览查找它们?你是否重新添加了MS库? - undefined
这是Interop.Shell32.dll。为了这个事情整天都在忙碌。 现在需要理解原因。我需要使用它。 - undefined
令人沮丧...我想每个开发者都知道那种争论。很高兴你现在明白了。 ;) - undefined
显示剩余3条评论
2个回答

1

这是对一个名为“Shell32.dll”的Interop.Shell32.dll版本的奇怪引用。不知道它来自哪里。

如果其他人也遇到了这个问题:逐个删除每个依赖项并编译,即使是微软的依赖项也要删除。


0

评论中的回答:

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

提示:通过“添加引用”>“程序集”选项卡(在左侧,不确定选项卡名称是否正确)来添加官方的Microsoft库。不要通过浏览文件来添加它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接