重写在TFS 2008/2010中由MSBuild创建标签的位置

重写在TFS 2008/2010中由MSBuild创建标签的位置,msbuild,msbuild-task,labels,Msbuild,Msbuild Task,Labels,默认情况下,当队列生成正在运行时,MSBuild调用CoreLabel任务来标记生成中包含的源文件-如何控制此标签的创建位置 基本上,我希望在团队项目的根目录下创建标签(即下面的文件夹“Client”),但标签似乎是在工作区的工作文件夹的根目录下创建的(即项目1\Development\Sources): 但是,即使将文件设置为$/,标签仍在工作文件夹级别创建。根据文档,Files参数应该指定标签中包括哪些文件,但显然它没有像我们希望的那样工作 我已经成功地修改了通过设置LabelComment

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

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

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


我已经成功地修改了通过设置
LabelComment
属性的
BeforeLabel
任务创建的注释,但是,尝试将同一任务中的
LabelFiles
属性设置为类似
$/Client
的内容似乎不会影响创建标签的位置,调用Label方法时,日志中的
%26/Client

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

如果在生成类型中将“开发”指定为源代码管理文件夹,则将仅为“开发”文件夹下的文件创建标签

标签不仅通过名称标识,还通过所谓的“范围”标识,其中范围是标签名称唯一的实际路径

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

Scope=“$/Client”

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


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

感谢您的回复-是的,我意识到
范围
有效地定义了标签的范围-我们一直很好地使用它在不同的团队项目中使用同名的多个标签。我希望
文件
能够让我控制标签的创建位置。所以基本上,我们需要创建一个单独的构建任务,从根开始标记所有内容?因为如果我从命令行运行tf label,我可以使用ItemSpec参数在TFS中的任何位置设置标签,而不管我配置了什么工作文件夹?我想您正在使用TFS2010。您使用的是默认构建模板(DefaultTemplate.xaml)还是升级构建模板(UpgradeTemplate.xaml)?是的,我们正在使用TFS2010,但我相信我们使用的是2008风格的构建项目-我有一个.proj文件,其中包含许多任务,主要是因为我们在项目开始时没有时间学习新的基于工作流的做事方式:(因此,我可能错过了这个问题。
$                     <-- 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.
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)