为 TFS 2013 BuildDefinitions 重用 Ant build.xml

Reuse Ant build.xml for TFS 2013 BuildDefinitions

我已经通过 ant 使用 TFS java 支持成功构建了一个 Java Web 应用程序。我的问题是我有几个应用程序共享一个公共构建过程并希望重用 build.xml(传入参数以区分输出),但是,TFS 构建定义不允许我引用 build.xml 文件位于我的特定构建的工作区映射之外的共享位置。

例如,假设以下版本控制结构:

来源
申请
申请 1
主要
来源
网络内容
申请 2
主要
来源
网络内容

对于每个构建定义,我希望 root 成为该应用程序的 Main 分支的根,以便只有那些源文件被复制到构建服务器。我希望 build.xml 存储在 Applications 目录中,因为它将在 Application 1 和 Application 2 之间共享。当我尝试这样做时,出现以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions\Microsoft.TeamFoundation.Build.Extensions.Ant.targets (306): $/Source/Applications/build.[= 没有工作文件夹映射44=]

这是因为我在构建定义中的源代码管理文件夹被设置为一个子文件夹 (Main)。如果我将我的源代码管理文件夹设置为 Applications 文件夹,我相信它会起作用,但是,我随后注意到构建尝试将 Applications 下的所有文件传输到构建服务器,这会减慢构建速度。关于如何实现所需的重用有什么想法吗?也许 TFSBuild.proj 文件中的某些内容会限制使用参数 ${ApplicationName}/Main 或类似参数传输的文件?

在此先感谢您的帮助。

您可以将工作区设置为包含文件夹并隐藏其他文件夹。我可以想象,将所有其他内容隐藏在范围内会引起工作。推荐的做法是将共享文件夹放在它自己的文件夹下,而不是应用程序的根目录下。这样您就可以显式映射该文件夹以及您要构建的分支。

当 XAML 构建在 TFS 2015 发布时停用时,新的构建系统允许您拥有在构建定义之间共享的任务。