如何将2个参数传递给Nant脚本?

时间:2010-02-16 14:20:31

标签: .net ant build-automation nant

我必须编写一个Nant脚本,它将在命令行上接受2个参数。第一个只是一个选项,具有以下格式:-myOption。第二个需要用引号括起来:“有些空间值”。

e.g。 -myOption“this value”

我是Nant的新手,所以到目前为止我还没有成功,也不知道如何输出命令进行调试。

这是我到目前为止所做的:

<target name="Build" depends="SetupConfig">
<exec workingdir="${refactory.basedir}" program="${exe.name.mfg.factory}" basedir="${refactory.basedir}" commandline="-myOption:">  
 <arg>${refactory.clientconfig}</arg>   
</exec>

我正在尝试使用“命令行”属性和args嵌套元素创建命令。 args元素应该提供qoutes。

有人可以告诉我这看起来应该怎样?感谢。

2 个答案:

答案 0 :(得分:29)

我需要承认,看看你的代码片段,我并不完全清楚你想要实现的目标。

无论如何,这是你将两个参数传递给NAnt脚本的方式(你要求的关于问题标题的内容):

给定具有以下内容的NAnt脚本example.project.build

<?xml version="1.0"?>
<project name="example.project" default="example.target" basedir=".">
  <target name="example.target">
    <echo message="${arg.option}" />
    <echo message="${arg.whitespace}" />
  </target>
</project>

...你会打电话

nant -buildfile:example.project.build -D:arg.option=foo -D:arg.whitespace="bar and bar"

...执行脚本example.project.build并将参数arg.optionarg.whitespace传递给它。

答案 1 :(得分:2)

试试这个:

<target name="Build" depends="SetupConfig">
<exec workingdir="${refactory.basedir}" program="${exe.name.mfg.factory}"  basedir="${refactory.basedir}">
    <arg value="-myOption" />
    <arg value="${refactory.clientconfig}" />
</exec>

有关详细信息,请查看Nant Exec task documentation