【问题标题】:TFS 2010, BuildAgent and MSBuild for changelog.txt with changesetTFS 2010、BuildAgent 和 MSBuild 用于带有变更集的 changelog.txt
【发布时间】:2011-11-12 11:14:30
【问题描述】:

我们将 TFS 2010 与 VS 2010 一起用于我们的 Web 项目 (php)。由于我们实际上不使用 .proj 文件,因此我创建了自己的文件来进行构建(仅 zip 文件用于输出目录)。我们还使用 MSBuild 社区任务。我的 web 应用程序 (php) 的 msbuild.proj 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
    <Target Name="Changelog">
        <!-- need to create changelog.txt (all checkin files comments) -->
    </Target>
    <Target Name="Zip" DependsOnTargets="Changelog">
        <ItemGroup>
            <ZipFiles Include="**\*.*"/>
        </ItemGroup>
        <Zip Files="@(ZipFiles)" ZipFileName="$(OutDir)_myzip.zip" />
    </Target>
    <Target Name="Default" DependsOnTargets="Zip">
        <Message Text="My Build Complete" />
    </Target>
</Project>

我的问题是如何编写目标“Changelog”,它将使用所有开发人员 cmets 创建 changelog.txt,用于 TFS 中的所有时间签入文件。 如果需要,我可以修改 DefaultTemplate.xaml 文件和/或构建定义。 BuildAgent 作为 NETWORK SERVICE 启动,并将文件放在放置文件夹/网络共享上。

【问题讨论】:

    标签: visual-studio msbuild tfsbuild changelog


    【解决方案1】:

    如果您使用的是 TFS 构建,则构建摘要报告将默认为您提供该构建的关联变更集列表(这是自上次成功构建以来的变更集列表)。

    如果您想要从一开始就列出所有变更集,您将不得不进行一些自定义。您有两个选择,创建自定义 MSBuild 任务或创建自定义构建工作流活动。在这种情况下,我会推荐后者,因为这是 TFS 2010 中的新做事方式。

    这两种方法实际上都非常简单。要创建自定义工作流活动,请参阅此博客文章以帮助您入门:http://blogs.msdn.com/b/jimlamb/archive/2009/11/18/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx 或者,如果您选择使用 MSBuild 路线,这里有一篇文章向您展示如何创建自定义任务:http://blogs.msdn.com/b/msbuild/archive/2006/01/21/515834.aspx,这是 TFS 的参考您可能需要调用 API 方法来获取变更集列表:http://msdn.microsoft.com/en-us/library/bb138960.aspx

    【讨论】:

      【解决方案2】:

      在我看来,有两种方法可以解决这个问题。第一个将是自定义 .proj 文件和构建方面。第二种方法是使用类似http://tfschangelog.codeplex.com 的应用程序。

      TFS ChangeLog 允许用户通过提供项目、分支和变更集范围信息从 TFS 自动生成发行说明。然后,它将关于给定变更集范围内的每个变更集及其相关工作项的信息提取到 XML 文件中。

      用户可以通过命令提示符使用此应用程序(使用计划任务自动生成发行说明)或使用 GUI 界面生成发行说明。

      希望这会有所帮助。

      最好的问候,

      Dharmesh Shah。

      【讨论】:

        猜你喜欢
        • 2011-11-04
        • 1970-01-01
        • 2010-12-10
        • 2011-03-21
        • 2011-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        相关资源
        最近更新 更多