visual-studio - 构建不支持多个命令行参数的事件

我在 Visual Studio 2010 中的 C# .NET 4.0 项目中将以下内容作为构建后事件:

call "$(SolutionDir)Publish\Publish.exe" "$(TargetDir)" "\\lithium\c\Photon"
call "$(SolutionDir)RemoteControl\RemoteControl.exe" start

问题是执行 Publish.exe 时,只有一个命令行参数被传递,其中包含以下值:

C:\Users\...\bin\Release" \\lithium\c\Photon

注意:我用省略号替换了一些文件夹,否则这是准确的值

无论出于何种原因,它将两个参数合二为一,并且非常奇怪地解析引号。我已经调试了一段时间,我试过不使用 call,使用 Publish.exe 的相对目录,使用像 这样简单的东西call "$(SolutionDir)Publish\Publish.exe"hello world 它总是被分解成一个参数。这让我相信这不是一些愚蠢的引语。

如果我从提示符下运行这个完全相同的程序,它会完美运行。有人,请帮助我摆脱这种疯狂。

最佳答案

在处理另一个项目时,我实际上设法重现了您的问题。我将多个参数传递给 powershell 脚本,发现它们被视为单个参数。谷歌搜索找到此链接

http://davidfrette.wordpress.com/2011/01/20/creating-powershell-pre-build-and-post-build-events-for-visual-studio-projects/

它的解决方案是在第一个参数的末尾放置一个空格,即在您的示例中是

call "$(SolutionDir)Publish\Publish.exe" "$(TargetDir) " "\\lithium\c\Photon"

这对我有用,希望它能解决您的问题。

如果您有超过 2 个参数,那么您需要在除最后一个之外的每个参数末尾添加一个空格。

HTH

https://stackoverflow.com/questions/6755654/

相关文章:

web-services - 对于可能返回过时数据的 GET 请求,我应该使用什么 HTTP 状态代

sql-server - 检查是否启用了复制

Wordpress - 删除特定自定义帖子类型的自动生成的段落

string - 如何将使用 Windows 代码页 1251 编码的字符串转换为 Unicode

perl - 这个 zip 命令是如何在 perl 中使用的?

wordpress - 使用 wordpress post thumbnail 确定图像方向

geodjango - Django-profiles,带有地理字段的用户配置文件?

sql - SQL Server 是否可能报告不正确的受影响行数?

MongoDB - 添加到集合并递增

qt - 如何禁用 QTableWidget 滚动到选定的单元格?