构建流程设计:Nuget vs Artifact依赖项

时间:2016-11-17 01:00:35

标签: visual-studio build nuget teamcity build-process

我有一个依赖于内部共享库B的应用程序A. A和B都有自己的存储库。

我正在使用TeamCity 10来构建这两个项目。我考虑这两种方式:

  1. 构建B并将dll发布为工件。使用B上的工件依赖构建A.

  2. 构建B并作为nuget包发布。使用与B的nuget依赖关系构建A.

  3. 我的问题是:

    1. 哪种方法更好?

      • 工件依赖关系似乎是最简单的方法并且可以完成工作,但是如果我们使用nuget路径,我们可以概括依赖关系解析并将其与构建服务器分离以实现它。我可以通过nugets看到的另一个优点是,当开发人员检查B的解决方案时,可以通过nuget解决任何依赖关系。虽然对于工件依赖性,需要在开发人员的本地机器上使用某种类型的预构建脚本来检索/复制dll工件,模仿TeamCity对构建服务器上的工件依赖性所做的事情(有更好的方法吗?)。
    2. 如果我们实现nuget依赖项,为什么我们需要依赖工件依赖项呢?

    3. 提前感谢您提供的任何反馈。

2 个答案:

答案 0 :(得分:1)

最好的方法是根据您的项目开发进度。

如果项目A和项目B仍在开发中,我建议您使用工件依赖项。由于您在开发项目时会经常更改项目,因此在TeamCity中您只需要为构建配置添加工件依赖项。无论您如何更改项目代码,构建配置都不需要更改。

如果项目开发已经完成,NuGet依赖项是一个不错的选择。因为如果您在开发项目时使用NuGet依赖项,那么在开发期间更改任何代码时,您需要重新打包这些包并将其重新安装到项目中。

答案 1 :(得分:0)

我更愿意使用Nuget,就像你在问题中提到的优势一样。当您想要将共享库添加到项目/解决方案以在本地构建时,它更方便并且可以节省更多时间。