解决运行时出现的解决方案程序集版本不兼容问题

Resolve solution assemblies versions incompatibility appeared at runtime

我有一个 .NET 项目解决方案大到足以解决 nuget 包版本干扰问题。一个项目包含依赖旧 Newtownsoft.JSON 库版本的程序集,另一个项目使用程序集,需要此库的更新版本。

我知道好像没有办法解决,但我的问题不是这个。当调用第二个程序集中的方法时,我在运行时遇到错误的程序集版本问题,因此出现异常。

那么,是否有任何工具或 Visual Studio 选项可以检查解决方案中是否存在依赖项版本不兼容的程序集?如果这样的工具也能帮助解决问题,那就太好了。

is there any tool or Visual Studio option to check if there are any assemblies with incompatible versions of their dependencies in the solution?

恐怕答案是否定的,因为NuGet本身就可以很好地完成这个任务。当您通过 NuGet 安装任何包时,如果任何程序集的依赖项版本不兼容,NuGet 将提示 "There was a conflict between..."。

此外,可以尝试将"MSBuild project build output verbosity"更改为"Detailed"或以上查看详细错误日志。通过工具 -> 选项...-> 项目和解决方案 -> 构建和 运行 来做到这一点。将 MSBuild 项目生成输出详细级别设置为“详细”或更高级别。构建项目并检查输出 window 中的错误日志。它将显示有关不兼容的详细信息,然后只需选择合适的版本即可使用。