[英]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
将命令嵌入到始终返回 0 的可执行文件中会解决您的问题吗?
在 c 通话中
system("net stop myservice")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.