我正在尝试在我的ANT脚本中使用incredibuild执行VS构建,但由于某种原因,exec任务失败并出现以下错误:
'Win32'未被识别为内部或外部命令
当我使用以下代码时:
<arg line='buildconsole solution.sln /rebuild /cfg="Release|Win32"' />
我认为ant脚本可能正在处理'|'作为分隔符或其他东西...
我有什么想法可以让它发挥作用吗?
我也尝试了以下内容,但没有什么能让我更接近:
<arg line='buildconsole solution.sln /rebuild /cfg="Release|Win32"' />
<arg value="buildconsole solution.sln /rebuild /cfg="Release|Win32"" />
<arg value="buildconsole solution.sln /rebuild /cfg="Release|Win32"" />
答案 0 :(得分:3)
您需要通过前面的^来转义管道符号。所以:
<arg line='buildconsole solution.sln /rebuild /cfg="Release^|Win32"' />
编辑:
你确定插入符不起作用吗?它似乎在这个示例ant文件中:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="build" basedir=".">
<target name="build">
<exec executable="cmd">
<arg line="/k echo cfg="Release^|Win32""/>
</exec>
</target>
</project>
答案 1 :(得分:1)
嗯......我刚试了一遍,但是有效,但只有在我改为
之后<arg value="buildconsole solution.sln /rebuild /cfg=Release^|Win32" />
所以我想如果我使用值,则不需要在Release ^ | Win32周围引用。
非常感谢!
答案 2 :(得分:0)
我认为问题是Windows命令提示符会看到|并将其视为“管道”操作员。也许通过使用:
来逃避管道&lt; arg line ='buildconsole solution.sln / rebuild / cfg =“Release \ | Win32”'/&gt;