Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 %ERRORLEVEL%在通过visual studio命令提示符生成解决方案时失败_Visual Studio 2012_Msbuild - Fatal编程技术网

Visual studio 2012 %ERRORLEVEL%在通过visual studio命令提示符生成解决方案时失败

Visual studio 2012 %ERRORLEVEL%在通过visual studio命令提示符生成解决方案时失败,visual-studio-2012,msbuild,Visual Studio 2012,Msbuild,我正试图通过VisualStudio命令提示符构建一个解决方案。我用的是VS2012。我已经编写了一个脚本,并通过VS命令提示符使用它。脚本内容为: set BUILD_STATUS=%ERRORLEVEL% msbuild C:\MyProj.vcxproj /p:Configuration=Debug /p:platform=x64 /verbosity:minimal @if %BUILD_STATUS%==1 goto fail :fail exit /B 1 如果解决方案已编

我正试图通过VisualStudio命令提示符构建一个解决方案。我用的是VS2012。我已经编写了一个脚本,并通过VS命令提示符使用它。脚本内容为:

set BUILD_STATUS=%ERRORLEVEL%

msbuild C:\MyProj.vcxproj /p:Configuration=Debug /p:platform=x64 /verbosity:minimal

@if %BUILD_STATUS%==1 goto fail

:fail

exit /B 1
如果解决方案已编译且是最新的,则返回错误并终止执行。执行直接移动到:fail块,而不执行更多行。只有当解决方案是最新的,但过时的解决方案工作正常时,才会发生这种情况

我也尝试过否定:

@if not %BUILD_STATUS%==0 goto fail

请提供帮助。

ERRORLEVEL不是环境变量,因为您正在尝试捕获它。将批处理重写为:

msbuild C:\MyProj.vcxproj /p:Configuration=Debug /p:platform=x64 /verbosity:minimal

@if ERRORLEVEL 1 goto fail

rem If no error, success
goto success

:fail
exit /B 1

:success
exit /B 0

似乎您是在构建之前而不是之后捕获ERRORLEVEL,您确定这是您想要的吗?同样,不管构建状态是什么,它总是会达到:fail,因为您只使用
if
,而不使用
else
?无论如何,为什么要使用这样的脚本而不是直接调用msbuild?@Milind,修复批处理文件,它的编写方式毫无意义。在那之后,试着重现你的问题。对我来说,msbuild在成功时总是返回
0
,在出现生成错误时总是返回
1