2

我们将 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”,它将创建 changelog.txt,其中包含 TFS 中所有时间签入文件的所有开发人员评论。如果需要,我可以修改 DefaultTemplate.xaml 文件和/或构建定义。BuildAgent 作为 NETWORK SERVICE 启动,并将文件放在放置文件夹/网络共享上。

4

2 回答 2

1

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

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

这两种方法实际上都非常简单。要创建自定义工作流活动,请参阅此博客文章以帮助您入门:http: //blogs.msdn.com/b/jimlamba/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

于 2011-10-03T22:22:17.207 回答
1

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

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

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

希望这可以帮助。

此致,

达梅什·沙阿。

于 2012-05-21T22:52:23.567 回答