NuGet:如何在多个解决方案中保持包版本一致?

时间:2012-09-19 10:00:42

标签: visual-studio-2012 nuget

我们正在构建一组服务,每个服务都有自己的解决方案和相关项目。其中许多服务依赖于相同的NuGet包 所有解决方案都启用了“包恢复”。

有些解决方案是指其他解决方案所拥有的所有程序集,这是我们需要所有解决方案来引用完全相同版本的不同NuGet软件包的一个明显原因。

所有服务需要协同工作才能达到最终结果。它们作为单个产品的一部分进行打包和安装,这是我们希望所有内容都使用相同版本的NuGet软件包的另一个原因

我们无法在解决方案之间保持包版本一致。

目前我们手动检查和更新软件包版本,我们也偶尔会遇到编译错误,因为一个解决方案中的项目最终会引用相同软件包的不同版本。

是否有推荐的方法(希望是自动流程)? 如果没有Package Restore,我们会更好吗? 有人对这个问题有任何一般性建议吗?

由于

更新:我在NugGet项目http://nuget.codeplex.com/workitem/2623

上为此创建了一个问题

2 个答案:

答案 0 :(得分:5)

解决这个问题:

  1. 创建您自己的私有NuGet服务器(请参阅12),其中包含您使用的正确版本的软件包。
  2. 配置每个构建系统以使用该服务器并自动更新到最新版本。
  3. 虽然这需要服务器,但它不仅可以确保每个人都拥有正确的版本,还可以加快构建服务器的下载速度。

答案 1 :(得分:0)

您可以配置TFS版本,使用nuget update command将解决方案中的所有NuGet软件包更新为最新版本。

最新版本可能来自nuget.org,本地NuGet服务器甚至是网络共享。使用source参数定义要更新的源。

您可以通过MsBuild proj文件或TFS模板执行构建配置。