我正在开发一个NANT构建项目来构建一个VS项目。其中一个构建文件具有如下属性定义:在南特转换长名称为短名称?
<property name="App.dir"
value ="${directory::get-current-directory()}\Source\App"/>
此属性值已在许多其他地方使用。例如:
<exec program=".\test.exe" workingdir=".">
<arg line="${App.dir}\project1\resources\res1.resx /arg2"/>
在这里,我需要使用< ARG线= ...的>代替< ARG值= ... >是通过指定的2个参数,以text.exe。
当我在另一个开发人员的机器上构建这个NANT项目时,出现构建失败。最后,我发现该开发人员机器上的$ {App.dir}是一个长格式的路径,路径中有一个空格。因此,text.exe的参数实际上是3个或更多。
我不知道是否有任何方式向$ {} App.dir路径短名称转换不带空格:
<property name="App.dir" value ="????"/>
地方????是将“$ {directory :: get-current-directory()} \ Source \ App”转换为短格式的路径名。有没有办法做到这一点?
我在Windows XP中使用NANT。在Unix系统/ Cgywin,有one function让DOS名称:
cygpath::get-dos-path
我可以用这一个在我的NANT build文件?
无论在ARG值将被传递到我的regsgen运行。arg中的空格引起了问题。 – 2010-11-10 22:08:22
如果您使用<参数值=“...”>该值将自动引用,如果需要的话。作为替代方案,您可以使用。 –
2010-11-11 14:59:19
value属性将把整个值作为一个参数。如果值中有空格,则会在值附近添加引号。我的问题是将价值作为参数传递给我的EXE exe程序。如果$ {app.dir}的值是或中的一部分,则参数被解释为错误。 –
2010-11-12 17:33:58