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

发现同一依赖程序集的不同版本之间存在无法解决的冲突。当日志详细信息设置为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,然后我如何使警告消失?


当前回答

VS 2017, MVC项目

我不知道为什么,但对我来说,这个问题的解决方案是从控制器动作方法调用的模型方法签名中删除一个out参数。这是非常奇怪的行为,但这是我问题的解决方案。

其他回答

在迁移到Package Reference之后,我收到了这个警告。在诊断输出中,有同一库本身引用了该库的信息。这可能是一个新的包引用的错误。解决方案是启用AutoGenerateBindingRedirects并删除自定义绑定重定向。

我正在使用Visual Studio 2017,在更新一些Nuget包时遇到了这个问题。对我有用的是打开我的网。config文件,找到<runtime><assemblyBinding>节点并删除它。保存网页。配置并重新构建项目。

查看错误列表窗口。您将看到一个关于绑定冲突的非常长的警告。双击它,它将自动用正确的映射重新创建<runtime><assemblyBinding>块。

我可以解决这个问题,在web项目中安装Newtonsoft Json

正如dotnet CLI问题6583所述,这个问题应该用dotnet nuget locals -clear all命令解决。

请注意,我通过将AutoGenerateBindingRedirects放在csproj文件中的TargetFramework之后解决了这个问题:

<TargetFramework>net462</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>