如何自动化引用源文件夹之外的多个项目的Web项目?

时间:2015-09-24 14:07:49

标签: version-control tfs tfsbuild

我正在使用gated check ins创建自动构建。但是我们有一些项目引用了源目录之外的其他Web应用程序。所以我们有一个名为'PolicyRating.sln'的项目,它位于源代码管理的'Client'文件夹中。它在我们的'CoreFramework'项目集合中引用了其他5个项目,当我尝试将其部署到我们的QA服务器时,它无法在构建服务器上找到引用的项目。它找不到项目文件。有没有办法构建一个引用源目录之外的其他项目的项目?我正在使用TFS 2013

1 个答案:

答案 0 :(得分:0)

如果您正在使用TFVC,则需要映射包含所有这些项目的工作区。

来自https://msdn.microsoft.com/en-us/library/ms181716.aspx

  

在“源设置”选项卡上:

     

TFVC:在“工作文件夹”表中,指定包含该文件的版本控制文件夹   你的构建过程需要。

     

提示确保您的构建过程   功能正常并提高性能,包括所有文件夹,   并且只有这些文件夹包含构建过程的文件   需要。请参阅使用构建工作区。

如果所有内容都分散在多个团队项目集合中,您将无法轻松完成此任务:项目集合旨在彼此完全隔离,适用于您需要的情况代码,工作项,测试用例,构建等彼此分离。

您仍然可以使用TFS API来完成它,但它不一定是直截了当的。

另一种选择是使用二进制引用,并将二进制引用转换为NuGet包。但是,您仍然需要在其他团队项目集合中设置构建/打包/发布流程。这将要求您设置单独的构建控制器和构建代理,因为您无法跨团队项目集合共享构建资源。

如果您正在使用Git并且应用程序在多个存储库中拆分,则可以使用子模块。

最终,如果您在团队项目集合中共享代码,则最好的选择是将它们合并到一个团队项目集合中。