我读过很多关于使用 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 文件。
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/