繁体   English   中英

在 Visual Studio 2010 的预构建步骤中吞下错误

[英]Swallowing errors in pre-build steps in Visual Studio 2010

我的解决方案有一堆项目,其中一个是 windows 服务; 我有一个 prebuild 步骤来停止服务和 postbuild 步骤来重新启动它(这样 windows 服务 exe 在 VS 构建/覆盖它时不会被锁定)。

on pre-build: 
net stop myservice

on post-build:
net start myservice

如果在我开始构建时服务没有运行,则 net stop 命令会失败,这会阻止构建继续进行。

即使预构建步骤失败,我还能做些什么来强制构建?

我想通了 - 您只需要在最后添加以下语句:

SET ERRORLEVEL = 0

或者简单地说:

EXIT 0

我知道这是一个旧帖子,但我最近也遇到了这个问题。 如果它当前正在运行,我想杀死我正在构建的进程,并发现我可以这样做:

taskkill /f /im $(TargetName).exe 2>nul 1>nul
Exit 0

2>nul 1>nul without Exit 0 ,反之亦然,似乎不起作用。 我必须两者都做。

另外值得注意的是使用 Visual Studio Express 2012。

在这个博客上调查这个问题时也找到了解决方案

2>nul 1>nul 将从命令中吞下标准错误和标准输出。 EXIT 0 将确保构建事件返回 0。

无需重定向标准输出,只需重定向标准错误。 此外, set errorlevel允许您稍后根据需要添加额外的行。 退出将立即终止。

taskkill /f /im:$(TargetFileName) 2>nul &set errorlevel=0

在 VS 2017 中工作。

将您的net命令包装在一个批处理文件中并使用exit /B 0

http://ss64.com/nt/exit.html

将命令嵌入到始终返回 0 的可执行文件中会解决您的问题吗?

在 c 通话中

system("net stop myservice")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM