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

3
为了解决问题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 - kayleeFrye_onDeck
1个回答

2

您可以使用

taskkill /FI "IMAGENAME eq iisexpress.exe"

如果iisexpress.exe没有运行,它将输出一条信息,但会返回0。您不需要使用批处理文件,只需将命令添加为“Pre-Build Event Command Line”。

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