2011-10-04 51 views
0
<?xml version="1.0"?> 
<project name="Project" default="build"> 
<property name="program" value="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" /> 
<property name="name.proj" value="C:\project\proj.csproj" /> 
<target name="build"> 
    <exec program="${program}"commandline="\devenv.exe ${name.proj}" /> 
</target> 
</project> 

它的输出....错误而在恶性使用<exec>标签

Error in Script usage:The Correct usage is:C:\Program Files (x86)\Microsoft Visual 
Studio 9.0\VC\vcvarsall.bat" [Option], where option= x86,ia64,or x86_ia64. 

但是,当我给出了86选项,它又来了错误。“/是一个意外标记”

请建议该怎么做。

+0

刚一个观察,但是如果在''{program}}'和'commandline'属性之间放置一个空格,那么它是否会有所作为? – funkymushroom

回答

1

你应该做的事:

<exec program="${program}" commandline="x86" /> 

我不知道为什么你逝去的devenv.exe为命令行。你可能想这样做,在一个单独的exec任务

1

你尝试过这样的:

<exec program="${program}"> 
    <arg value="x86" /> 
</exec> 

source

0

这里是从VSS

获得最新的样本EXEC
<target name="getlatest" > 
     <property name="path.cmd.exe" value="C:\WINDOWS\system32\CMD.EXE"/> 
      <property name="path.vss.bat" value="C:\Work\build\DailyBuild\nAnt\VSSGET.bat"/> 

    <echo> 
    ----------------------------------------------------------------------------------------------------------------- 
    ----------------------------------------------------------------------------------------------------------------- 
    TASK : GET LATEST FROM VSS 
    ----------------------------------------------------------------------------------------------------------------- 
    ----------------------------------------------------------------------------------------------------------------- 
    </echo> 
    <echo message="Task Start at: ${datetime::now()}" /> 

    <loadtasks assembly="nantcontrib-0.85/bin/NAnt.Contrib.Tasks.dll" />   

    <exec program="${path.cmd.exe}"> 
     <arg value="/C" />  
     <arg value="${path.vss.bat}" /> 
    </exec> 
</target>