2011-01-20 121 views
2

在TFS 2010构建定义窗口的“Process”下,有两个必需的项目。他们是“构建配置”和“构建项目”。在项目建设,这将让我输入类似:TFS 2010 Build定义

$/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中做到这一点?

回答

0

FWIW, 我有“的配置打造”空白 并在“项目,以建立”我已经通过省略号按钮添加我的解决方案

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的解决方案,然后构建它。

默认情况下,建立你的解决方法1被映射到

$/TeamProject/Area1/Area2 

在与即将工作目录中生成代理看起来像:

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

你会用它结束了正在建立

C:\Builds\1\Solution1\Binaries 
C:\Builds\1\Solution1\Sources 
C:\Builds\1\Solution1\TestResults 

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

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

3

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

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

有关定制构建过程模板的更多信息,请参阅blog post series on the build customization