以下是msbuild的Exec语句:
我的问题实际上是:我如何防止msbuild将
使用
<Exec Command="curl.exe -f -O --url "$(SourceURL)"">
如果SourceURL中包含空格,则会失败。即使我尝试
<PropertyGroup>
<SourceURL>http://www.example.com/url%20with%20spaces</SourceURL>
</PropertyGroup>
甚至更多
<PropertyGroup>
<SourceURL>http://www.example.com/url&37;20with&37;20spaces</SourceURL>
</PropertyGroup>
msbuild 会自动将任何空格转换为字符(你能相信吗?),而curl尝试获取 http://www.example.com/url
,但返回404错误。
我不明白为什么会这样。难道我没有正确引用URL参数吗?
[更新] 在命令提示符上,以下命令可以正常工作:
curl.exe -f -O --url "http://www.example.com/url%20with%20spaces"
虽然这个不行:
curl.exe -f -O --url "http://www.example.com/url with spaces"
我的问题实际上是:我如何防止msbuild将
%20
替换为空格?使用
curl 7.21.7 (i386-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.2.5
和msbuild 3.5.30729.1在Windows 7上。祝好!