是否有MSBUILD或TFS属性可用于获取签入人员的评论?

时间:2011-11-02 19:18:35

标签: tfs2010

我目前正在尝试为构建的AfterBuild事件添加一组命令。命令如下

  1. 在.. \ Binaries \ Latest \ $(ConfigurationName)\
  2. 中签出文件
  3. 将构建输出复制到.. \ Binaries \ Latest \ $(ConfigurationName)\
  4. 将文件签入.. \ Binaries \ Latest \ $(ConfigurationName)\
  5. 我的项目文件中定义的部分类似于

      <Target Name="AfterBuild">
        <PropertyGroup>
          <TF>"$(VS100COMNTOOLS)..\IDE\tf.exe"</TF>
        </PropertyGroup>
        <!-- include the Challenges dll and config -->
        <ItemGroup>
          <UtilityDLLs Include="$(OutDir)\*.*" />
        </ItemGroup>    
        <!-- Automticly checkout files -->
        <Exec Condition=" '$(BuildingInsideVisualStudio)' == 'false' " Command="$(TF) checkout /noprompt /recursive $(SolutionDir)..\Binaries\Latest\$(ConfigurationName)\">       
        </Exec>    
        <!-- copy the file to features build output-->
        <Copy Condition=" '$(BuildingInsideVisualStudio)' == 'false' " ContinueOnError="true" OverwriteReadOnlyFiles="true" SourceFiles="@(UtilityDLLs)" DestinationFolder="$(SolutionDir)..\Binaries\Latest\$(ConfigurationName)\" />
        <!-- Automatically checkin files -->
        <Exec Condition=" '$(BuildingInsideVisualStudio)' == 'false' " Command="$(TF) checkin /noprompt /recursive /comment:"COMMENT HERE" $(SolutionDir)..\Binaries\Latest\$(ConfigurationName)\">
        </Exec>    
      </Target>
    

    在我的上一个命令中,您将看到/ comment:“COMMENT HERE”选项

    我想用MSBUILD或TFS属性替换“COMMENT HERE”,其中包含进行初始签入的开发者的评论。这是一个选择吗?如果是这样,我该如何做到这一点?

    我在Common MSBuild Project Properties

    中找不到

    精化

    如果不泄露太多信息,请让我详细说明我要完成的工作。我们的TFS结构基本上是这样的

    • trunkCore
      • 分享帮助
      • Library2
      • Library3
    • trunkWeb
      • CoreBinaries
    • trunkAPI
      • CoreBinaries

    当开发人员检查对/ trunkCore / Library#的更改时,构建开始,生成的二进制文件会自动检入/ trunkWeb / CoreBinaries和/ trunkAPI / CoreBinaries。签入是因为我在Library1,Library2和Library3 csproj文件中定义的AfterBuild配置设置(如上所示)。

    初始代码签入和签入二进制文件是两个单独的签到。我想在自动签入的签到说明中引用原始代码签名的注释,而不是使用“自动签入二进制文件”等固定文本。在CoreBinaries目录中查看二进制文件的历史记录时,这样做会更加清晰。这不是必须的,但绝对会很好。

1 个答案:

答案 0 :(得分:4)

签入和构建不是1到1.可能没有与手动排队的构建相关的签入,也没有与计划或滚动构建相关的签入。

您需要添加自定义任务或调用自定义可执行文件,但只要您不使用Gated Checkins(因为签入在构建之后技术上不会发生)您应该能够查询所有签到评论,抓住你需要的。

var changesetSummaries = InformationNodeConverters.GetAssociatedChangesets(IBuildDetail);
foreach(var changesetSummary in changesetSummaries) {
  changesetSummary.Comment....
}