【发布时间】:2009-06-10 06:54:57
【问题描述】:
我使用 NAnt 已经有一段时间了,但对于我的需要来说,它似乎过于复杂。我想知道是否有其他方法可以构建 C# 项目?
【问题讨论】:
标签: build-process nant
我使用 NAnt 已经有一段时间了,但对于我的需要来说,它似乎过于复杂。我想知道是否有其他方法可以构建 C# 项目?
【问题讨论】:
标签: build-process nant
我会说,一旦您开始使用 NAnt,它并没有那么复杂。我错过了一个很好的“让我开始”教程,我读到的所有内容都感觉很过时。一件好事是您可以使用 MSBuild 来构建应用程序(这就是我正在使用的)并使用 NAnt 完成其余的工作。
至少我认为它并不比 MSBuild 难——而且 MSBuild 更容易,你可以免费使用 MSBuild。
这是我正在使用的:
<exec program="msbuild.exe"
basedir="C:\windows\microsoft.net\Framework\v3.5\"
commandline="Project.csproj /p:OutDir=..\Outdir\; configuration=Release" />
【讨论】:
现在有一些很好的替代 NAnt 和 MSBuild。
nRake(或只是 Rake)
http://jamescrisp.org/2010/03/20/nrake-rake-builds-for-net/
psake -- 用 PowerShell 编写的构建自动化工具
http://jameskovacs.com/2008/06/27/introducing-psake/
我个人使用过 NAnt 和 MSBuild,并且焦急地等待我们即将切换到其中之一(我们还没有决定哪一个)。 NAnt 和 MSBuild 一开始并不难,但是一旦构建脚本开始变得更大、更复杂并且您需要实际调试它们,它们就会成为处理的巨大负担。这实际上取决于您的自动化程度。
【讨论】:
您可以尝试FinalBuilder - 它非常易于使用,尽管我更喜欢坚持使用 NAnt。而且你总是有 MSBuild...
【讨论】:
有 MSBuild,但它并不比 Nant 简单。
一旦习惯了语法,两者都可以。
一个更简单的选择是使用批处理文件。
另一种方法是使用CIFactory,它提供了一种快速启动和运行构建和持续集成服务器的方法。
【讨论】:
我们正在研究Cake - 最大的优势是它基本上是 C#。
由于我们今天拥有的复杂流程,维护用于构建、打包和标记代码以及运行单元测试、代码覆盖率、静态分析等的 NAnt 脚本非常困难。
另见Why should you use a general purpose scripting language for your build scripts?
由于我们的大部分代码都是 C#,我们宁愿使用 C#...
【讨论】:
Phantom 是 C# 的一个非常简洁的替代方案。我希望它是在 python 中(更便携)并且更常用,因为语法非常简洁和强大。
【讨论】:
Maven 是一个很棒的构建工具,它主要是为 Java 社区开发的,但现在有一个 .NET plugin 用于构建 C# 项目。 Maven(简要概述see wikipedia)和 NAnt 之间存在相当大的概念差异,因此如果您想尝试它,可能需要先阅读。
2 个有趣的功能:
【讨论】: