使用tfs构建将预构建的公共组件拉入另一个构建

时间:2015-09-23 19:42:18

标签: tfs msbuild build-process tfsbuild

我正在寻找有关如何让团队构建2013使用未签入的预编译公共或工作区的一部分的建议。 我们构建的所有内容都是基于QNX的,我们正在重构一组通用的组件,以便在所有项目中共享。我看过Go和NuGet,但对于像这样的事情,这似乎很费劲 将预建公共事件引入TFS团队构建的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

所以你会努力发布"包裹。

https://docs.nuget.org/create/creating-and-publishing-a-package

然后你的构建将使用packages.config文件(又名,不是.sln文件)进行nuget恢复

nuget restore [<solution>|<packages.config file>]

https://docs.nuget.org/consume/command-line-reference

VS(在一个.sln文件中)为你自动推送一些内容。

但是使用命令行nuget(特别是用于恢复)....如果你的构建不是基于.sln文件,那么就是一种从nuget中获取包的方法。

考虑它的另一种方法是......当你运行&#34; nuget install&#34;或者&#34; nuget update&#34;,VS自动向你发送一个packages.config文件。虽然您可能会查看该文件并发现它很有趣,但您并没有在VS的背景中使用它。但是如果你想手动拉动nuget包......你会对它的创建方式非常感兴趣。

作为测试我会做的是:

  1. 创建一个虚拟的.sln,csproj文件。
  2. Nuget添加一些随机包(使用&#34;管理此解决方案的Nuget包)。
  3. 获取为您创建的auto-voodoo的packages.config ....并将其移动到干净的目录。
  4. 看看你是否可以在其上运行 nuget.exe恢复,并获取/拉取包(也就是说,你正在测试你可以拉动...没有.sln文件正在参与)。
  5. 如果这样有效......那就是创建你自己的nuget存储库的问题......创建你自己的已发布包...并重复上面的#4来获取该包。

    有意义吗?

    所以我将这些文件放在一个干净的目录中:

    .\packages.config
    .\.nuget\NuGet.Config
    .\.nuget\NuGet.exe
    .\.nuget\NuGet.targets
    

    然后我在comamand窗口中运行:

    .\.nuget\nuget.exe restore  .\packages.config -PackagesDirectory .\MyPackages
    

    &#34; packages.config&#34;中列出的所有软件包;将下载到:。\ MyPackages

    请注意,如果您有自定义nuget存储库,则需要对其进行配置...但是当您到达时跨越该网桥。