.net - 如何抑制 'Found conflicts between different versions of' 警告?

标签 .net visual-studio msbuild visual-studio-2017 visual-studio-express

在一个项目中,我有以下引用布局:

References
+- AssemblyA 6.7.6643.0
+- AssemblyB
|  \- AssemblyA 7.0.0.0
\- AssemblyC
   \- AssemblyA 7.0.0.0

AssemblyB 和 AssemblyC 是没有降级的 NuGet 引用。由于我无法控制的情况,升级 AssemblyA 不是一种选择。但是我收到这个警告:

Found conflicts between different versions of "AssemblyA" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

所以我就这样做了,这是输出:

There was a conflict between "AssemblyA, Version=6.7.6643.0" and "AssemblyA, Version=7.0.0.0". "AssemblyA, Version=6.7.6643.0" was chosen because it was primary and "AssemblyA, Version=7.0.0.0" was not. References which depend on "AssemblyA, Version=6.7.6643.0" [AssemblyA.dll]. AssemblyA.dll Project file item includes which caused reference "AssemblyA.dll". AssemblyA, Version=6.7.6643.0 References which depend on "AssemblyA, Version=7.0.0.0" []. AssemblyB.dll Project file item includes which caused reference "AssemblyB.dll". AssemblyB, Version=7.0.0.0 AssemblyC.dll Project file item includes which caused reference "AssemblyC.dll". AssemblyC, Version=9.0.0.0

它选择了我想要的版本,但我仍然在 Visual Studio 中收到警告。所以我更新了 app.config 绑定(bind)重定向,希望它能消除警告:

<dependentAssembly>
  <assemblyIdentity name="AssemblyA" publicKeyToken="..." culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="6.7.6643.0" />
</dependentAssembly>

但警告仍然存在。我已经确认,如果我将 AssemblyA 升级到 7.0.0.0,它会导致警告消失。但正如我之前所说,由于我无法控制的其他原因,我现在无法升级此程序集。

有没有办法只针对这个特定实例抑制此警告?

谢谢

最佳答案

实际上,有一种方法可以通过编辑 .csproj 将警告视为消息来抑制 MSBuild 更新版本的 MSBuild 警告。

例如..

<PropertyGroup> 
  <MSBuildWarningsAsMessages>
    $(MSBuildWarningsAsMessages);MSB3274;MSB3275;MSB3268
  </MSBuildWarningsAsMessages>
</PropertyGroup>

关于.net - 如何抑制 'Found conflicts between different versions of' 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383985/

相关文章:

asp.net-mvc-4 - 使用 MSBuild 12 构建 MVC 4.0 项目时出现 "Task failed because AXImp.exe was not found"

.net - Outlook.com的API

c# - ASP.Net MVC4 RC Web-Api Odata 过滤器不适用于 IQueryable

.net - 从外部应用程序访问 Visual Studio

MSBuild 目标 BeforeBuild 未执行

c++ - 头文件更改时,Visual Studio 2019 未构建所有 cpp 文件

c# - 如何以编程方式打开事件日志?

.net - ScriptBlock 未在 PowerShell 中执行

c++ - Visual Studio 2017 发布版本中的 Eigen cwisemin/cwisemax 访问冲突

winforms - VS2012 Winform设计器错误