我无法让TFS 2012构建一个引用另一个团队项目中的类库项目的Web应用程序项目。
以下是项目在源代码管理中的表现:
- $/
- TP1
- Development
- Source
- WebAppProject
- TP2
- Development
- Source
- ClassLibraryProject1
为了本示例的目的,我简化了这种结构 - 每个团队项目中都有其他解决方案和项目。假设TP2
包含供其他项目使用的代码,而不仅仅是TP1
。
包含WebAppProject
的解决方案还包含ClassLibraryProject1
。它是使用添加现有项目从TP1
添加的。 WebAppProject
还有一个对ClassLibraryProject1
的项目引用。
我正在开发一个团队构建,可以在TP1
和TP2
之间构建项目。我在TP2
中创建了构建定义并设置了以下工作区:
TFS无法构建WebAppProject
,错误确实有意义......
TFS正尝试使用ClassLibraryProject1
中的项目引用来解析对WebAppProject
的引用;例如:..\..\..\TP2\Development\Source\ClassLibrary1
但是,该路径显然不会存在于构建服务器上。
有更好的方法吗?
谢谢!
答案 0 :(得分:1)
执行此操作的最佳方法是设置工件存储库,例如NuGet(在规模的复杂末端),或者甚至是通常可访问的网络文件夹(在规模的最基本端)。
使用单独的构建作业/流程构建并将共享库输出到工件库。
通过工件存储库和一些“获取最新”的机制在消费项目中引用它(例如,NuGet获取,用于NuGet; xcopy / robocopy批处理脚本,用于共享网络目录)。
直接将共享项目添加到您的解决方案很容易导致一个痛苦的世界,例如:如果有人在您的解决方案中无意或无意地对共享项目进行了更改。