使用 NAnt 执行外部程序

NAnt 是一个可以帮助我们做自动建构的工具,透过NAnt不但可以自动建构,也可以做很多其他如复制文件,整理文件或建构多个版本等功能。基本上 NAnt 就是打内的 Ant。

NAnt 的 Script 是XML,内容是由许多的 Target 组成,如果没有特别指定,默认是会去调用 Build 这个Target.

下面是 NAnt 的范例:

这个范例是使用 MSBuild.exe 去建构 TestApp 这个 solution.

一开始先声明几个变量供后面使用,分别是 _SLNPATH, _SLNNAMEMSBuild.VS2012

接着是默认的 target : Build, 其内容就是去调用 BuildAppSolutionAnyCPUDebugBuildAppSolutionAnyCPURelease 这两个 target. 而在这两个 target 中都有 depend(相依) 到 PreBuildEvent, 这就表示在执行这两个 target? 时会先去调用 PreBuildEvent 这个 Target.

此外,在 Target 中用到的

echo message 代表会将 message 显示在画面上。

exec program? 则是表示会执行外部程序。

arg value 指的就该外部命令要带入那些参数。

最后一个 Target : AddPath_MyTools 里用到的 setenv ,指的就是设定环境变量。

setenv name=”path” 代表要变更 path 这个环境变量

${environment::get-variable(‘PATH’)} : 代表取得目前环境变量中的 path 这个项目

分号后面当然就是加入我们想要的路径啰!!

在这里其实我提到的不多,只是一些很基本的观念和语法而已,其实他拥有更多更强大的功能,可以上 http://nant.sourceforge.net/release/latest/help/ 去查看他

使用手册,可以找到更多好用的功能。

NAnt 下载网址:? http://nant.sourceforge.net/

   1: 

   2:? 
   3: 
   4:     
   5:
   6:     也可以在这里使用 include 其他的 NAnt scrip,
   7:     可以将变量写在同一个 script 内,将要执行部会变动的写在另一个
   8:     script 内区分开来。    使用方式如下
   9:         
  10:     -->
  11:     
  12:     
  13:     
  14:? 
  15:     
  16:         
  17:         
  18:     
  19:     
  20:     
  21:         
  22:         
  23:         
  24:             
  25:             
  26:             
  27:         
  28:     
  29:     
  30:     
  31:         
  32:         
  33:         
  34:             
  35:             
  36:             
  37:         
  38:     
  39:     
  40:     
  41:         
  42:     
  43:     
  44:     
  45:         
  46:     
  47: 

补充:

在 MSBuild.exe 的参数当中,/p:Configuration=Release 之后再加上 ;Platform=ARM 则代表要建置 Release ARM 版本

原文:大专栏  使用 NAnt 执行外部程序

原文地址:https://www.cnblogs.com/petewell/p/11474075.html

时间: 2024-08-05 03:06:51

使用 NAnt 执行外部程序的相关文章

C#小白使用入门,数据库操作,web端文件下载,执行外部程序,操作ini文件

现况:现有程序被排在服务器的每日执行任务计划中,程序功能是下载web端的一个文件,然后塞入到数据库中. 问题:不知道什么原因,偶尔发现服务器任务执行失败情况,导致某一天的数据缺失. 需求:每隔三天检查一次数据是否存在,如果不存在,则指定日期重新下载一次. 第一步:写一个操作数据库的类 namespace DEMO2616{ public class OracleDBlink {string connStr = "User Id=LIRUPENG;Password=Lrp19961013..;Da

Java执行外部程序(Apache Commons Exec)

之前使用Runtime.getRuntime().exec调用外部程序,在Tomcat下会有当前线程一直等待的现象.当时为了解决这个问题,使用新建线程接收外部程序的输出信息,详情请看博客http://blog.csdn.net/accountwcx/article/details/46785437. 后来在网上找到开源的Java调用外部程序类库Apache Commons Exce,这个类库提供非阻塞方法调用外部程序. 官方网址 http://commons.apache.org/proper/

C#和asp.net执行外部EXE程序

这两天研究下.Net的执行外部EXE程序问题,就是在一个程序里通过按钮或其他操作运行起来另外一个程序,需要传入参数,如用户名.密码之类(实际上很类似单点登录,不过要简单的多的多):总结如下: 1.CS版:WebForm的调用外部程序,很简单 (1)如果不考虑参数问题,仅仅是执行另外一个程序,用:System.Diagnostics.Process.Start("')即可: 如:System.Diagnostics.Process.Start("D:\\首字母拼音码.exe",

delphi中等待外部应用程序执行完成后,再继续执行自有代码段

下面是两个函数,用来执行一个外部程序,缺省是异步执行 同步调用方法 RunProgram('c:\aa.exe',true); 参考IsProgram_Runing函数,你也可以调用RunProgram('c:\aa.exe')先异步执行,然后根据返回的进程句柄,自己判断程序是否执行结束. // 异步执行 function RunProgram(ProgramName:string;Wait:Boolean=False):Cardinal; var StartInfo:STARTUPINFO;

PHP执行系统命令的有几个常用的函数

PHP执行系统命令的有几个常用的函数,如有:system函数.exec函数.popen函数,passthru,shell_exec函数他们都可以执行系统命令,不过前提时必须系统给了权限了哦. system函数 说明:执行外部程序并显示输出资料. 语法:string system(string command, int [return_var]); 返回值: 字符串 详细介绍:本函数就像是 C 语中的函数 system(),用来执行指令,并输出结果,若是 return_var 参数存在,则执行 c

PHP执行linux系统命令

本文是第一篇,讲述如何在PHP中执行系统命令从而实现一些特殊的目的,比如监控服务器负载,重启MySQL.更新SVN.重启Apache等.第二篇<PHP监控linux服务器负载>:http://www.ccvita.com/390.html 首先先要给大家介绍PHP执行linux系统命令的几个基本函数.我曾经很长一段时间都分不清下面几个函数的具体用法区别. system函数说明:执行外部程序并显示输出资料.语法:string system(string command, int [return_

进程控制扩展 程序执行 程序执行 函数

<?php //Resource Limits 名字 默认 可修改范围 更新日志 //memory_limit "128M" PHP_INI_ALL "8M" before PHP 5.2.0, "16M" in PHP 5.2.0 //echo memory_get_peak_usage();//返回分配给 PHP 内存的峰值 //echo "<br>"; //echo memory_get_usage()

go执行外部应用

go执行外部应用 最近想将原来用asp.net mvc写的一个公司内部网站改用beego来写,但发现其中有一个功能是,能将加密的sqlite文件进行解密,因为这个解密是不能公开的,但有些同事需要查看这些sqlite文件的结构和数据 ,所以其中一个功能就是能够将上传上来的sqlite解密后,再返回给浏览器供下载下来查看,但是发现go中没有提供sqlite的解密包功能,故另寻它路,发现可以采用go来执行我写的解密命令行程序,将需要解密的工程当参数传进去,然后执行后,就是解密后的文件了,可以返回给浏览

PHP-执行外部程序

备份/恢复数据库 exec - 执行一个外部程序(在php文件所在目录进行执行) 很久以前写的,很多方法是项目中的直接复制粘体用不了,只能提供下思路. 用到执行外部程序的就这一句: exec("mysql -u$username -p$password $database < $backup_path$backup_name"); <?php defined('BASEPATH') OR exit('No direct script access allowed'); cl