2014-09-29 90 views
2

我正在尝试修改TFS 2010的构建过程文件。我有一个队列构建时设置的标志,并且当设置所述标志时,我想要创建一个标签,并将所有源文件添加到编译成该标签的项目。如何使用TFS构建过程:LabelSources?

对于设置了标志的顺序构建,我希望将所述标签中较旧的源文件替换为正在编译的变更集中的新内容。

我一直在试图用LabelSources来做到这一点,但没有运气,并且在LabelSources或LabelWorkspace上有很差的文档(有什么区别?)。

这是我目前有:

<mtbwa:LabelSources Child="[LabelChildOption.Replace]" Comment="Published to Container" DisplayName="Create Container Label" sap2010:WorkflowViewState.IdRef="LabelSources_1" Items="[{&quot;$/Foo/LabelTest/Sandbox/&quot;}]" Name="[String.Format(&quot;{0}-{1}&quot;, LabelName, Version_Container)]" Recursion="[RecursionType.Full]" Scope="$/Foo" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" Version="T" />

这肯定打的动作,但没有标签可以在事后被发现。

任何帮助将不胜感激。和任何有形文档,除了类文档与稀疏定义也将不胜感激

编辑1:试图清除我的目标。

+1

我可以澄清,当你说“我想创建一个标签,并将编译项目中的所有文件添加到该标签” - 这意味着源文件即未编译?所以如果设置了标志,那么你想要一个标志并将标志文件添加到标签中,那么如果该标志被再次设置,那么你想用新版本更新该标签中包含的源文件?那是对的吗? – 2014-10-02 13:34:47

+0

这是正确的。 – WillFM 2014-10-02 20:02:58

+0

标签是源文件上的有效标签。您不要将源文件添加到标签,而是将标签应用于源文件的版本。这也意味着,如果您更新源文件,标签仍然会指向旧版本,除非您删除该标签,然后将其重新应用于较新的版本。 – 2014-10-09 02:16:28

回答

0

你要做的是建立在现有的模板中。流程定义中应该有一个选项,指向将被设置为True的Clean Sources。

此选项控制枯萎的构建源被清理,删除并重新开始。或者如果差分完成。

如果你有很多的源代码,你可以将clean source设置为false,并节省大量时间获取代码。

您还可以通过在构建框上放置一个TFS代理来加快构建速度,该构建框将缓存这些文件并使构建更快速。

+0

我很抱歉,但你的回答完全没有提到这一点,正如标题所说,我担心的是标签,我编辑了一句话,我相信你误将这一句话带入了眼前的问题。 – WillFM 2014-10-01 13:08:48

0

根据我的经验,大多数内置活动的记录不完善 - 他们唯一经过充分测试的用例是他们在TFS内置模板(DefaultTemplate.11.0.xaml等)中的使用。恐怕你将不得不编写一些自定义代码,以自定义活动,PowerShell脚本或其他方式的形式来实现其他目标。

这就是说,我并不真正了解您要设置的过程。你是否想将标签设置为最新成功构建的源代码?为什么不使用由构建本身自动创建的那个?

+0

我们有一个异常的部署结构。我们在签入之后持续集成构建,我们的构建脚本中有一个标记,可以设置(用于手动构建)在构建到不同位置后发布。目标是在设置标志时创建标识代码库的标签以及发布构建的目标。 – WillFM 2014-10-02 20:00:33