如何确保 c# 解决方案中的所有项目都使用相同版本的第三方库?

How to ensure that all projects in a c# solution use same versions of third party library?

我正在研究一个包含多个项目的解决方案,我在其中一个项目(class 库)中更新了 Newtonsoft.Json。这在另一个项目(一个 ASP.Net WebApi 项目)中导致了一些错误,因为它也需要更新对 Newtonsoft.Json 的引用。

错误是在 运行 时抛出的,而不是编译时,我不得不在解决方案中的每个项目上手动安装 Newtonsoft.Json

Install-Package Newtonsoft.Json

这让我想知道是否可以在解决方案级别更新所有第三方库?

我知道您可以创建一个文件夹来存储库并将其添加到源代码管理中,但我想避免这种情况。

我希望 Nuget 在从存储库中获取解决方案后下载库。我想知道是否可以:

  1. 在解决方案中创建一个名为 www.solution.com.thirdparty
  2. 的新项目
  3. 添加对所有使用 nuget 的第三方软件的引用
  4. 通过www.solution.com.thirdparty
  5. 公开所有第三方库

我不知道第三步怎么做,我也想知道有没有更好的方法?

in this post所述,在解决方案级别使用包。

或者你可以看看 Paket,它有一个很好的传递依赖解析算法,可能适合你。