Visual Studio 预构建事件:批处理文件退出代码为 -1

Posted

技术标签:

【中文标题】Visual Studio 预构建事件:批处理文件退出代码为 -1【英文标题】:Visual Studio Pre-Build Event: Batch File Exit Code is -1 【发布时间】:2012-07-17 01:32:28 【问题描述】:

为了解决问题IIS Express Blocks VS 2010SP1 Builds,我创建了一个简单的批处理文件

taskkill /IM iisexpress.exe
exit 0

并将该批处理文件设置为预构建事件。

如果 IIS Express 确实在运行,它运行良好。但是,如果 IIS Express 没有运行,则构建会失败并显示以下输出:

找不到进程“iisexpress.exe”。 命令“E:\Software\Util\KillIisExpress.bat”以代码 -1 退出。

如果我使用 taskkill 命令而不是批处理文件作为预构建事件,则错误变为

“taskkill /IM iisexpress.exe”命令退出,代码为 128。

如何修改批处理文件,以便无论 taskkill 返回什么退出代码,批处理文件都返回退出代码 0,以便 VS 构建成功?

【问题讨论】:

如果你直接运行taskkill而不是使用call taskkill并且没有运行iisexpress.exe,taskkill会直接退出非零,总是绕过你的exit 0 【参考方案1】:

你可以使用

taskkill /FI "IMAGENAME eq iisexpress.exe"

如果 iisexpress.exe 没有运行,它将输出一条信息消息,但将返回 0。您不需要带有此的批处理文件,只需将该命令添加为 Pre-Build Event 命令行。

【讨论】:

以上是关于Visual Studio 预构建事件:批处理文件退出代码为 -1的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2008 上设置预调试事件

如何仅为调试构建运行 Visual Studio 构建后事件

如何使用 GLFW 预编译的二进制文件编译 Visual Studio 2019 发行版

如何使用 Visual Studio Code 为 cmake 添加预构建步骤?

Visual Studio 2003 预构建脚本找不到“svn”命令

获取Visual Studio变更集作为修订的一部分