当我清理并构建具有多个项目的解决方案时,输出窗口将报告构建成功。然而,当我查看错误列表窗口时,它向我显示了这样的警告:

发现同一依赖程序集的不同版本之间存在无法解决的冲突。当日志详细信息设置为detailed时,这些引用冲突将在生成日志中列出。C:\Program Files (x86)\MSBuild\12.0\bin\ Microsoft.Common.CurrentVersion.targets

当我双击此消息时,它将打开C:\Program Files (x86)\MSBuild\12.0\bin\ Microsoft.Common.CurrentVersion。目标文件,但我不明白任何东西在它。

我正在使用Visual Studio Express 2013的Web。

我如何找出什么是错误的,与哪个DLL,然后我如何使警告消失?


当前回答

我该如何让警告消失呢?

你可能需要重新安装或升级你的NuGet包来解决这个问题。

其他回答

在visual studio中改变构建的冗长将有助于指向正确的方向。按照以下步骤更改VS中的详细信息

进入工具->选项菜单在VS 开放项目和解决方案->构建和运行 更改MSBuild项目构建输出详细信息的值。选择 分别是安静、最小、正常、详细和诊断

检查VS中的输出窗口(Ctrl+Alt+O),查看构建日志中的更改。

重申@elshev的评论 右键单击解决方案->管理解决方案->的NuGet包在巩固下,你可以看到是否有不同版本的相同的包被安装。在那里更新包。解决冲突错误。

如果您对包做了任何更改,请重新打开sln。这对我很管用!

根据其他答案,将输出日志记录级别设置为detailed并在那里搜索冲突,这将告诉您下一步要查看的位置。

在我的例子中,它让我在几个方向上寻找引用的源,但最后发现问题出在我的一个可移植类库项目上,它瞄准了错误的版本,并引入了自己的引用版本,因此产生了冲突。一个快速的重新定位,问题就解决了。

我遵循了这里的几个回复的建议来找出问题所在,但似乎没有一个答案能解释如何修复它。我的问题是,一个参考文献需要另一个参考文献的不同版本。因此,Newtonsoft的版本是6,但其他一些DLL想要4.5。然后我按照其他答案的建议升级了Newtonsoft,这让事情变得更糟。

所以我实际上降低了我的Newtonsoft安装,警告消失了(VS 2017):

右键单击解决方案资源管理器中的引用,并选择管理NuGet包… 在“Installed”选项卡下,找到Newtonsoft(或任何你的冲突) 在右侧,“版本”旁边会出现一个下拉框,您可以将其更改为旧版本。对我来说,这个下拉菜单可以用来降级并不明显。