0

默认情况下,当排队构建运行时,MSBuild 调用 CoreLabel 任务来标记构建中包含的源文件 - 我如何控制创建此标签的位置?

基本上,我希望在团队项目的根目录下创建标签(即下面的文件夹“Client”),但似乎标签是在工作区的工作文件夹的根目录下创建的(即 Project 1\Development \来源):

$                     <-- Project Collection
+- Client             <-- Team Project
  +- Project 1        <-- Project
    +- Deployments    <-- Assets for a deployment
      +- 1.0.0.0
      +- 1.1.0.0
    +- Development    <-- Development Branch
      +- Source       <-- Dev Build Definition working folder mapped here.
    +- Environment    <-- Scripts, etc. for deployments.
    +- Main           <-- Main Branch
      +- Source       <-- Release Build Definition working folder mapped here.

在构建定义中,我们在工作区的“源”文件夹级别为 Development 或 Main 指定了一个“工作文件夹”,具体取决于构建类型。

查看构建日志,看起来应该在客户端级别创建标签:

Task "Label" (TaskId:42)
  Label TeamFoundationServerUrl="http://TFSServer:8080/tfs/DefaultCollection"
        BuildUri="vstfs:///Build/Build/4538" 
        Name="Nightly_20110303.5" 
        Scope="$/Client" 
        Recursive=True 
        Comments="Version-1.0.0.0 Requested-xxx Get-T Branch-Development"
        Version="WCATQCDEV-BLD_35_8"
        Child="Replace"
        Files="$/" (TaskId:42)
  Label Nightly_20110303.5@$/Client (version WCATQCDEV-BLD_35_8) was successfully created. (TaskId:42)

但是,即使Files设置为$/标签仍会在工作文件夹级别创建。根据文档,该Files参数应该指定标签中包含哪些文件,但显然它并没有像我们想要的那样工作。

BeforeLabel我已经成功修改了使用设置属性的任务创建的注释LabelComment,但是,尝试将LabelFiles同一任务中的属性设置为类似的东西$/Client似乎不会影响标签的创建位置,而且似乎也结束了up%26/Client在调用 Label 方法时在日志中被修改。

4

1 回答 1

2

将为该特定构建类型的工作区选项卡中指定的源代码管理文件夹创建标签。

如果您在 Build Type 中指定“Development”作为源代码管理文件夹,则只会为“Development”文件夹下的文件创建标签。

标签不仅由名称标识,而且由所谓的“范围”标识,其中范围是标签名称唯一的实际路径。

如果您的标签范围是“$/project”,则标签名称在 Project 中是唯一的;当范围为“$/Project/Development”时,标签名称在 Development 中是唯一的。

范围="$/客户"

日志文件中的上述条目并不意味着它正在为 $/Client 下的文件创建标签,但它实际上意味着创建的标签在 $/Client 中是唯一的。

该范围还允许用户在同一个项目中创建多个具有相同名称的标签。例如:可以为同一个项目(“$/project”和“$/Project/Development”)中的不同范围创建两个具有相同名称的标签“Test”。

于 2011-03-05T08:32:56.217 回答