【问题标题】:how to do builds with nant如何使用 nant 进行构建
【发布时间】:2009-07-15 06:28:58
【问题描述】:

在我的组织中,我们计划为 .net Web 应用程序使用 nant。源代码控制是 TFS,Visual Studio 2008。我想知道如何使用 Nant 进行构建?如何使用 Nant 创建 msi 和部署应用程序?使用 nant 进行构建是否需要单独的构建机器?有人请帮帮我。我需要逐步的过程。提前致谢。

谢谢 山西

【问题讨论】:

    标签: nant


    【解决方案1】:

    关于使用 NAnt 的分步指南,我建议参考 NAnt project documentation 了解基本概念。一旦您熟悉了它的基本用法,我建议您调查nant-contrib 项目以获得更多构建任务。

    我想在这里直接解决的部分问题是,是否需要一台单独的机器才能使用 NAnt。 NAnt 并不严格要求单独的机器,但是如果您的构建过程是自动化的或特别密集的,单独的机器可能会有所帮助

    [更新]

    回应 OP 的评论: NAnt 将构建过程视为要作为目标的一部分执行的一系列单独任务。构建应用程序的正常过程是在源文件上调用编译器以生成二进制文件,NAnt 有许多调用语言编译器的任务

    在此示例中,我将使用 NAnt 构建文件中的任务调用 C# 语言编译器 (csc.exe),该任务用于由名为 hello.cs 的单个源文件组成的 Hello World 应用程序。

     <?xml version="1.0"?>
    <project name="Hello World" default="build" basedir=".">
        <property name="debug" value="true" overwrite="false" />
        </target>
        <target name="build" description="compiles the source code">
            <csc target="exe" output="HelloWorld.exe" debug="${debug}">
                <sources>
                    <includes name="HelloWorld.cs" />
                </sources>
            </csc>
        </target>
    </project>
    

    让我们检查一下这个 XML:

    <project name="Hello World" default="build" basedir=".">
    

    注意事项:

    • 默认属性的值为“build”。这意味着如果没有指定其他目标,将调用名为“build”的目标。

    • 这是构建目标,如描述所述它将编译源代码。为此,使用了 csc 任务。 csc 任务有许多选项,包括

    • target:指定目标将生成的二进制文件的类型。在这种情况下,将生成一个可执行文件

    • 输出:指定将要创建的可执行文件的名称

    • debug:此属性的值使用了条件属性 debug(上面定义为 false),它将确定编译器是否生成包含调试信息的可执行文件

    • 来源和包括: 指定编译器将解析以生成可执行文件的源文件

    如您所见,构建源代码所需的操作是在目标中定义的。一个构建文件可以定义许多目标,每个目标调用许多任务。要生成 MSI 文件,您将调用一个生成 MSI 文件的任务,不幸的是,由于我实际上并不经常使用 NAnt,您将不得不做一些研究才能找到一个,尽管我觉得 nant-contrib 项目包括一个给定的生成 MSI 是多么普遍。

    我希望这个解释能为你澄清一些事情

    本次更新中的信息是从 NAnt 文档中的 this 文档中提炼出来的

    【讨论】:

    • 感谢您的回答。我已经参考了这些文件,但我仍然不清楚。我想知道 nant 将如何编译源代码并创建 msi?如果你有任何文件是你为南特所遵循的吗?可以发给我吗。
    • 我想指出,我的回答很大程度上是对 NAnt 文档的反刍,虽然我知道并完全理解堆栈溢出不是此类活动的地方,但我觉得有必要提供帮助OP在这里,因为我已经开始这样做了
    【解决方案2】:

    不一定需要单独的构建机器,但绝对推荐。

    您需要考虑使用以下工具:

    【讨论】:

      猜你喜欢
      • 2019-11-07
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多