14

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

一些解决方案引用了其他解决方案拥有的程序集,这就是为什么我们需要所有解决方案都引用不同 NuGet 包的完全相同版本的一个明显原因。

所有服务都需要协同工作以实现最终结果。它们作为单个产品的一部分进行打包和安装,这是我们希望所有东西都运行在相同版本的 NuGet 包的另一个原因

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

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

是否有推荐的方法(希望是自动过程)?
如果没有包还原,我们会更好吗?
有人对此主题有任何一般性建议吗?

谢谢

更新:我在 NugGet 项目http://nuget.codeplex.com/workitem/2623上为此创建了一个问题

4

2 回答 2

5

要解决这个问题:

  1. 创建您自己的私有 NuGet 服务器(请参阅12),以托管您使用的正确版本的包。
  2. 配置每个构建系统以使用该服务器并自动更新到最新版本。

虽然这需要一台服务器,但它不仅可以确保每个人都拥有正确的版本,而且还可以加快构建服务器的下载速度。

于 2012-09-21T08:12:29.150 回答
0

nuget update您可以使用命令配置您的 TFS 构建以将解决方案中的所有 NuGet 包更新到其最新版本。

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

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

于 2014-08-05T22:43:14.673 回答