TFS 2010构建定义

时间:2011-01-20 09:38:03

标签: tfs tfs2010 build-definition

在TFS 2010构建定义窗口中,“处理”下有两个必需项。它们是“要构建的配置”和“要构建的项目”。在要构建的项目下,它允许我输入类似的内容:

$/TeamProject/Area1/Area2/*

但是,这似乎没有达到我的预期。构建失败,因为它正在寻找:

$/TeamProject/Area1/Area2/Sources/*

我想要实现的目标是建立在这个领域下的所有解决方案。例如,我有:

$/TeamProject/Area1/Area2/Solution1/Solution1.sln
$/TeamProject/Area1/Area2/Solution2/Solution2.sln
$/TeamProject/Area1/Area2/Solution3/Solution3.sln

还有更多的解决方案,这就是为什么我正在寻找一种方法来递归地在指定的路径下构建所有解决方案。有没有办法在TFS 2010中做到这一点?

3 个答案:

答案 0 :(得分:3)

您可以修改流程模板。使用匹配文件(我现在没有确切的命名)活动展开它。添加一个参数,将您在构建定义中设置的信息传递给MachingFiles actvity。然后传入构建解决方案活动,而不是您在构建定义中输入MatchingFiles活动找到的文件的参数。

现在在构建定义中添加一个虚拟解决方案,以便构建解决方案(不再使用它)。

有关自定义构建过程模板的详细信息,请参阅blog post series on the build customization

答案 1 :(得分:0)

FWIW, 我有:“构建配置”空白 在“要构建的项目”下,我通过省略号按钮添加了我的解决方案

答案 2 :(得分:0)

我会设置

的映射
$/TeamProject/Area1/Area2/Solution1/    
$/TeamProject/Area1/Area2/Solution2/    
$/TeamProject/Area1/Area2/Solution3/

然后在构建定义中输入要构建的三个项目

$/TeamProject/Area1/Area2/Solution1/Solution1.sln
$/TeamProject/Area1/Area2/Solution2/Solution2.sln
$/TeamProject/Area1/Area2/Solution3/Solution3.sln

您可以将配置保留为空白,或者如果要进行某种构建,可以将其设置为(例如)调试|混合平台(请检查配置管理器...以获取解决方案)建设看什么是有效的)

或者,您可以映射以下内容(取决于您在此文件夹中的容量,如果您有不希望触发构建的解决方案4+,请不要在此级别执行此操作)

$/TeamProject/Area1/Area2

并且有一个包含Solution1,Solution2和Solution3的解决方案,并构建它。

默认构建映射到

的Solution1
$/TeamProject/Area1/Area2

在具有工作目录的构建代理上,该目录看起来像:

$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)

你最终会在

下构建它
C:\Builds\1\Solution1\Binaries
C:\Builds\1\Solution1\Sources
C:\Builds\1\Solution1\TestResults

这就是为什么你要确保你的OutDir等都是正确的而不是硬编码的!

如果您在构建时查看,您将看到构建代理填充Sources文件夹,它应该(如果配置正确)将所有输出放入Binaries文件夹(然后将它们复制到Build下配置的Drop文件夹)默认值为TFS。