c# - 什么是 nAnt,它如何对我作为 C# 开发人员有用?

标签 c# .net visual-studio-2008 nant

我总是编译我的项目,并将 dll 从依赖项项目复制到 UI bin 文件夹。几天后,每次我重新编译我的项目时都会进行“复制和粘贴”操作,我得出结论,我需要一个可以自动为我完成的工具。经过几次搜索,发现这个工具是 nAnt。

我搜索了如何开始使用它的信息,但没有找到太多信息。 所以,我的问题是:

  • 简而言之,nAnt 是什么?
  • 我如何从中受益?

编辑:我不能只添加对依赖项目的引用,因为它会导致循环依赖。

最佳答案

NAnt 是构建 .NET 项目和解决方案的构建工具(基于原始的 Ant for Java)。它也是一种基于 XML 的“脚本”语言,您可以在其中命令“任务”来完成构建工作,包括您正在谈论的事情的类型——还有很多很多!

我们使用 NAnt 作为我们的构建脚本工具(由 Cruise Control.NET(又名 CCNET,我们的持续集成工具)在每次源代码控制 checkin 时触发)来执行我们的自动化构建。它包括以下内容:

  1. 构建解决方案
  2. 运行我们的单元测试以确保构建没有“中断”
  3. 将我们的网络项目部署到我们的开发服务器
  4. 将构建压缩并存档到构建文件夹中以进行历史跟踪和“撤销”

另一个解决方案是 MSBuild,它实际上是 Visual Studio 使用的。非常相似。

请注意:您不能使用 NAnt 的解决方案任务build设置和部署项目(您也不能使用 MSBuild 执行此操作)。为了解决这个问题,我们已经开始使用命令行参数运行 devenv.com(没有 UI 的 Visual Studio)——使用 NAnt 的“exec”任务而不是内置的任务-在“solution”任务中——构建整个解决方案,包括安装和部署包。我们过去也使用过 WiX 和 MSBuild...

最后,对于您概述的具体问题,您实际上应该只考虑以下选项之一:

  • 只需将相关项目作为项目引用添加到网站解决方案中,您就会自动获得 DLL
  • 考虑创建一个 PostBuild 任务(查看“项目属性”窗口),在成功构建时执行 xcopy

随着项目复杂性的增加,在 NAnt 和最终 CCNET 上投入时间绝对不会出错。您可以让 CCNet 监视您的源代码控制以进行 checkin 或每晚运行,并且您可以设置依赖项目,这样,例如,如果您的依赖项目构建,它可以启动您的网站构建和/或运行单元测试看看有没有什么东西坏了。

关于c# - 什么是 nAnt,它如何对我作为 C# 开发人员有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125864/

相关文章:

c# - 如何在 DateTimePicker 中设置字体大小

c# - 如何从另一个 .NET 程序使用交互式命令行程序

c# - 在修改 Cursor 的代码中重定向标准输出

c# - Visual Studio 2008 C# : Auto-Increment Version numbers

c++ - 我如何在 VS2008 中强命名 C++ 程序集?

.net - AnkhSVN 麻烦 : "please select a valid location in the repository to add to"

C# Automapper -> 条件映射

c# - Razor 删除了资源文件中的新行,有什么办法可以保留它?

c# - 关系型 SQL Server 数据库

javascript - 将脚本引用 (JavaScript) 添加到 Microsoft AJAX 部分回发上的脚本管理器