TFS 2012 - 构建一个引用另一个团队项目中的类库的Web应用程序项目

时间:2012-12-04 21:49:41

标签: tfsbuild

我无法让TFS 2012构建一个引用另一个团队项目中的类库项目的Web应用程序项目。

以下是项目在源代码管理中的表现:

- $/
  - TP1
    - Development
      - Source
        - WebAppProject
  - TP2
    - Development
      - Source
        - ClassLibraryProject1

为了本示例的目的,我简化了这种结构 - 每个团队项目中都有其他解决方案和项目。假设TP2包含供其他项目使用的代码,而不仅仅是TP1

包含WebAppProject的解决方案还包含ClassLibraryProject1。它是使用添加现有项目TP1添加的。 WebAppProject还有一个对ClassLibraryProject1的项目引用。

我正在开发一个团队构建,可以在TP1TP2之间构建项目。我在TP2中创建了构建定义并设置了以下工作区:

  • $ / TP1 /开发构建代理文件夹设置为$(SourceDir)\ TP1 \ Development
  • $ / TP2 /开发构建代理文件夹设置为$(SourceDir)

TFS无法构建WebAppProject,错误确实有意义......

TFS正尝试使用ClassLibraryProject1中的项目引用来解析对WebAppProject的引用;例如:..\..\..\TP2\Development\Source\ClassLibrary1但是,该路径显然不会存在于构建服务器上。

有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是设置工件存储库,例如NuGet(在规模的复杂末端),或者甚至是通常可访问的网络文件夹(在规模的最基本端)。

使用单独的构建作业/流程构建并将共享库输出到工件库。

通过工件存储库和一些“获取最新”的机制在消费项目中引用它(例如,NuGet获取,用于NuGet; xcopy / robocopy批处理脚本,用于共享网络目录)。

直接将共享项目添加到您的解决方案很容易导致一个痛苦的世界,例如:如果有人在您的解决方案中无意或无意地对共享项目进行了更改。