Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 Visual Studio预构建事件;检查每个事件的退出代码_Visual Studio_Events_Exit Code_Pre Build Event - Fatal编程技术网

Visual studio Visual Studio预构建事件;检查每个事件的退出代码

Visual studio Visual Studio预构建事件;检查每个事件的退出代码,visual-studio,events,exit-code,pre-build-event,Visual Studio,Events,Exit Code,Pre Build Event,我有一个多项目的解决方案。仅当预生成事件中的两个事件都退出且错误代码为0时,才需要生成一个项目 所以我想我可以做到以下几点: “C:\Path\To\Binary1.exe”和“C:\Path\To\binary2.exe” 在我的测试场景中,出现了一些错误,因此Binary1.exe以非零值退出。但VisualStudio仍在继续构建该项目。 在cmd和echo%errorlevel%中运行预构建事件命令行时,我看到退出代码为非零 当我只把 “C:\Path\To\Binary1.exe” 在

我有一个多项目的解决方案。仅当预生成事件中的两个事件都退出且错误代码为0时,才需要生成一个项目

所以我想我可以做到以下几点:

“C:\Path\To\Binary1.exe”和“C:\Path\To\binary2.exe”

在我的测试场景中,出现了一些错误,因此Binary1.exe以非零值退出。但VisualStudio仍在继续构建该项目。 在cmd和echo%errorlevel%中运行预构建事件命令行时,我看到退出代码为非零

当我只把

“C:\Path\To\Binary1.exe”

在预生成事件中,生成将停止,并且在Visual Studio的
错误列表中显示en error

我肯定Binary1.exe是以非零值退出的,因为它在退出之前也会显示一个messagebox

我能想出一个解决办法。Binary1.exe调用Binary2.exe并在Binary2.exe以非零退出代码退出时以非零退出代码退出。但这并不是一个真正灵活的解决方案

总结如下:
当其中一个命令返回非零值时,如何运行多个预生成事件并停止生成?

如果两个项目位于同一解决方案中,则可以在Visual studio中设置依赖项。 右键单击解决方案资源管理器中的解决方案,然后选择“项目依赖项”

将“最后一个”项目设置为取决于前两个项目。在这种情况下,VisualStudio将按正确的顺序生成,如果其中一个依赖项无法生成,则将停止生成。
(Visual Studio 2013)

我认为您可以做到以下几点:

run command 1
if ERRORLEVEL 1 (
    exit /b 1
    )
run command 2

这与项目依赖性无关。它是关于预构建事件的,当预构建事件中调用的任何一个可执行文件失败时,预构建事件都会失败。我的问题更多的是关于预构建事件语法(或者一般的cmd语法?),或者,如果%errorlevel%==0(做点什么)
,您可以像这样检查命令shell环境变量