visual-studio - tutorial - snippets visual studio code
Tragar errores en los pasos previos a la compilaciĆ³n en Visual Studio 2010 (5)
¿Incrustar el comando en un ejecutable que siempre devuelve 0 resuelve su problema?
en c llamada
system("net stop myservice")
Mi solución tiene un montón de proyectos, uno de los cuales es un servicio de Windows; Tengo un paso previo al desarrollo para detener el servicio y un paso posterior al desarrollo para reiniciarlo (de esta manera, el archivo exe del servicio de Windows no se bloquea cuando VS lo está creando / sobrescribiendo).
on pre-build:
net stop myservice
on post-build:
net start myservice
Si el servicio no se está ejecutando mientras estoy iniciando la compilación, el comando net stop falla y eso impide que la compilación continúe.
¿Qué puedo hacer para forzar aún la compilación incluso si el paso previo a la compilación falló?
Envuelva sus comandos de net
en un archivo por lotes y use exit /B 0
Lo descubrí: simplemente debes agregar la siguiente declaración al final:
SET ERRORLEVEL = 0
o simplemente:
EXIT 0
No hay necesidad de redireccionar stdout, solo stderr. Además, set errorlevel
permite tener líneas adicionales más tarde si lo necesita. La salida terminará inmediatamente.
taskkill /f /im:$(TargetFileName) 2>nul &set errorlevel=0
Trabaja en VS 2017.
Sé que este es un post antiguo, pero recientemente también tuve este problema. Quería terminar el proceso que estaba construyendo si se estaba ejecutando actualmente, y encontré que podía hacer:
taskkill /f /im $(TargetName).exe 2>nul 1>nul Exit 0
2>nul 1>nul
sin la Exit 0
, o viceversa, no parece funcionar. Tengo que hacer ambas cosas.
También vale la pena señalar que está utilizando Visual Studio Express 2012.
Encontré la solución al analizar este problema también en este blog.
El 2> nul 1> nul tragará el stderr y stdout del comando. El EXIT 0 se asegurará de que el evento de construcción devuelva 0.