TFS 2010、BuildAgent 和 MSBuild 用于带有变更集的changelog.txt

发布于 2024-12-03 13:57:11 字数 1142 浏览 1 评论 0 原文

我们将 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 作为网络服务启动,并将文件放置在放置文件夹/网络共享上。

We use TFS 2010 with VS 2010 for our web projects (php). Since we do not actualy use .proj files I have created my own to do builds (only zip files to output dir). Also we use MSBuild community tasks. My msbuild.proj for my web application (php) goes like this:

<?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>

My question is how to write Target "Changelog" that will create changelog.txt with all developer comments for all-time check-in files in TFS.
If necesery I can modify DefaultTemplate.xaml file and/or build definition.
BuildAgent is started as NETWORK SERVICE and places file on drop folder/network share.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

混吃等死 2024-12-10 13:57:11

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

如果您想要自开始以来的所有变更集的列表,您将必须进行一些自定义。您有两个选择,创建自定义 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

If you're using TFS Build the Build Summary report will by default give you a list of associated changesets for that build (this is the list of changesets since the last successful build).

If you want a list of all changesets since the beginning of time you're going to have to do some customization. You have two options, creating a custom MSBuild task, or creating a custom Build Workflow Activity. I'd recommend the latter in this case as that is the new way of doing things in TFS 2010.

Either approach is actually pretty straightforward. To create a custom workflow activity see this blog post to get you started: http://blogs.msdn.com/b/jimlamb/archive/2009/11/18/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx alternatively if you choose to go the MSBuild route here's a post to show you how to create a custom task: http://blogs.msdn.com/b/msbuild/archive/2006/01/21/515834.aspx and here's the reference for the TFS API method you'll probably want to call to get a list of changesets: http://msdn.microsoft.com/en-us/library/bb138960.aspx

小猫一只 2024-12-10 13:57:11

我认为,我们可以通过两种方式来解决这个问题。第一个是自定义 .proj 文件以及构建方面。第二种方法是使用 http://tfschangelog.codeplex.com 应用程序。

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

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

希望这有帮助。

最好的问候,

达米什·沙阿。

In my opinion, there are two ways in which we can approach to resolve this issue. First one will be to customize .proj file and so the Build aspect. Second way will be use something like http://tfschangelog.codeplex.com application.

TFS ChangeLog allows users to automatically generate release notes from TFS by providing project, branch and changeset range information. It then extracts information about each changeset and their associated workitems within the given range of changesets into XML file.

Users can use this application either from command prompt (automate generating release notes using scheduled task) or use GUI interface to generate release notes.

Hope this helps.

Best Regards,

Dharmesh Shah.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文