代码之家  ›  专栏  ›  技术社区  ›  Eric J.

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

  •  3
  • Eric J.  · 技术社区  · 14 年前

    为了解决这个问题 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构建成功?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Fraser    14 年前

    您可以使用

    taskkill /FI "IMAGENAME eq iisexpress.exe"
    

    如果iisexpress.exe没有运行,它将输出一条信息消息,但会返回0。您不需要批处理文件,只需将该命令添加为预生成事件命令行即可。