使用TFS构建运行NAnt脚本

时间:2013-12-30 22:45:29

标签: 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)来解决所提出的具体问题,而不是偏离。

干杯

2 个答案:

答案 0 :(得分:2)

以下是如何做到这一点:

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

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

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

3)转到构建定义中的Process选项卡,然后转到“要构建的项目” - &gt; “要建立的项目” - &gt;选择(右侧图标) - &gt;添加 - &gt;将“类型的项目”更改为“MSBuild项目文件”,然后选择您签入的.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.

答案 1 :(得分:0)

我们遇到了类似的问题。对于我们的一个项目,我们只想为构建运行DOS命令。我所做的是创建一个只运行DOS命令的自定义构建模板。该模板具有应用程序运行,应用程序参数和应用程序工作目录的参数。

以下是整个模板在设计器中的样子。

enter image description here

以下是我们的参数列表

enter image description here

我之前没有使用过NAnt,但我猜你可以从DOS命令运行它。 您应该能够将.sln作为DOS命令的参数之一传递。