tfs - 使用 TFS 构建运行 NAnt 脚本

标签 tfs tfsbuild nant

我读过很多关于使用 TFS 构建执行 NAnt 脚本的文章和帖子,但没有一个能满足我的需求。

我有一个多年来开发的 NAnt 脚本,用于自动构建、测试我们的网站并将其部署到内部临时和外部演示环境。

通常,团队规模很小,构建过程是手动过程。我们的目的始终是将这个脚本集成到 CI 环境中。

最近,我们将源代码控制切换到 TFS 2012,目的是通过现有的 NAnt 脚本使用 TFS 构建。

据我所知,到目前为止,可以使用 TFS 构建执行 NAnt 脚本,但在创建新的构建定义时,不可能不为 TFS 构建指定要首先构建的 .sln 文件。

理想情况下,我希望 NAnt 控制整个构建/测试/部署过程,并且让 TFS Build 退出并利用 TFS 提供的 checkin 触发器来触发 NAnt 构建。

我考虑过编写自己的 TFS checkin 拦截器。其他人已经解决了这个问题吗?

非常感谢

任何人都可以回答,请坚持提出的具体问题,不要通过建议替代(付费或免费)CI 工具(例如 CCNet 或 TeamCity)来偏离主题。

干杯

最佳答案

以下是具体操作方法:

1) 从http://sourceforge.net/projects/nant/files/下载Nant.exe并 checkin 包含 Nant.exe 的 bin 目录。

2) 使用以下代码创建一个 msbuild 文件(例如 msbuild.proj)(更改路径)并 checkin 该文件。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="RunNant">
        <Exec Command="bin\nant.exe; -buildfile:master.build build"/>
    </Target>
</Project>

3) 转到构建定义中的“进程”选项卡,然后转到“要构建的项目”-->“要构建的项目”--> 选择(右侧图标)--> 添加 --> 更改“项目”类型”更改为“MSBuild 项目文件”,然后选择您 checkin 的 .proj 文件。

enter image description here

4) 运行您的构建,它应该可以工作。请参阅下面的日志,显示它运行了 Nant 构建文件。

Build started 12/31/2013 4:55:20 AM.
Project "C:\a\src\F\Test Projects\TestProject\msbuild.proj" on node 1 (default targets).
RunNant:
  bin\nant.exe; -buildfile:master.build build
  NAnt 0.92 (Build 0.92.4543.0; release; 6/9/2012)
  Copyright (C) 2001-2012 Gerry Shaw
  http://nant.sourceforge.net

  Buildfile: file:///C:/a/src/F/Test Projects/TestProject/master.build
  Target framework: Microsoft .NET Framework 4.0
  Target(s) specified: ; build 

   [solution] Starting solution build.

关于tfs - 使用 TFS 构建运行 NAnt 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848810/

相关文章:

TFS 2010 无法创建备份计划

android - 由于未就 Android 许可证达成一致,通过 TFS 运行的 Gradle 构建失败

powershell - PowerShell替换文件夹名称

azure-devops - VSTS 中创建代理池需要什么权限?

nant - 编写能够使用过滤器的自定义 NAnt 任务

git - 我可以在本地 TFS 服务器中维护公共(public) github 存储库的(非公共(public))分支吗?

msbuild - 无法使用 TF 服务构建,本地构建正常

database - 我可以使用 NAnt 查询我的数据库并将结果用作参数值吗?

javascript - jsTestDriver + Nant = 测试目录问题

version-control - 使用 TFS 创建补丁