如何在后期构建事件中运行一个exe文件

21

在后期构建事件中运行特定的exe文件的正确脚本是什么?


一个例子:http://msdn.microsoft.com/zh-cn/library/ke5z92ks.aspx - Morten Frederiksen
2
就像您从命令行运行此 .exe 文件一样。因此,如果路径或可执行文件名包含空格,请使用完整路径指定您的 .exe 文件并用双引号括起来。 - Sergey Kudriavtsev
@SergeyKudriavtsev:谢谢!您是否愿意将其编写为答案,以便我可以将其标记为正确答案? - MichaelS
3个回答

27

就像你会从命令行运行这个 .exe 文件一样。因此,如果路径或可执行文件名包含空格,则要指定完整路径并用双引号括起来。


12

提供的答案是正确的,但并不总是必要提供完整路径。

例如:运行项目输出可执行文件之一。

  • (可选)配置后生成事件以始终运行Always
  • 使用相对于项目路径的路径。例如:"$(ProjectDir)bin\Debug\maybe_just_refreshed.exe" 或更好的版本由 m93a 建议:"$(TargetDir)maybe_just_refreshed.exe" (这样可以弥补输出位置已自定义(而非默认的bin\Debug)的情况)。

1
你可以使用"$(TargetDir)maybe_just_refreshed.exe"代替"$(ProjectDir)bin\Debug\maybe_just_refreshed.exe" - m93a
@m93a - 我已经在答案中采纳了你的建议。除了更短之外,它还适用于自定义输出位置。谢谢。 - Alexei - check Codidact
@延迟 - 查看这个问题。你是否正确地指向了可执行文件?ECHO命令可以帮助你在输出中看到它正在尝试执行的实际路径。 - Alexei - check Codidact
调用"$(TargetPath)",否则会出现9009错误。 - Latency
@延迟 - 我不确定,但我认为$(TargetPath)指向输出可执行文件/程序集文件夹,而$(ProjectDir)指向项目的基本目录。因此,答案可能需要根据实际设置(项目类型、项目构建配置等)进行调整。 - Alexei - check Codidact
显示剩余2条评论

3

对我来说,这些答案都没有起作用。

即使我的exe文件处于我提供的文件路径中,它仍然以“无论如何”的代码退出,从未正常工作。

然后我做了这个:

cd $(ProjectDir)

"MyProgram.exe"

...在构建后事件命令行编辑器的不同行上。

我的应用程序位于项目目录中。 它们不能在同一行上工作,但是分开的行很好用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接