5

我有一个包含多个项目的解决方案。如果两个事件在预构建事件中都以错误代码 0 退出,则只需构建一个项目。

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

"C:\Path\To\Binary1.exe" & "C:\path\to\binary2.exe"

在我的测试场景中出现问题,因此 Binary1.exe 以非零值退出。但无论如何,Visual Studio 都会继续构建该项目。当我在 cmd 中运行预构建事件命令行并 echo %errorlevel% 时,我看到退出代码非零。

当我只放

"C:\Path\To\Binary1.exe"

在预构建事件中,构建停止并且在Error ListVisual Studio 的窗口中显示错误。

我确信 Binary1.exe 以非零值退出,因为它还在退出之前显示了一个消息框。

我可以想到一种解决方案。当 Binary2.exe 以非零退出代码退出时,Binary1.exe 调用 Binary2.exe 并以非零退出代码退出。但这并不是一个真正灵活的解决方案。

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

4

2 回答 2

4

我认为你可以这样做:

run command 1
if ERRORLEVEL 1 (
    exit /b 1
    )
run command 2
于 2014-08-14T07:02:20.013 回答
2

If the two projects are in the same solution, you can set the dependency in Visual studio. Right-click on the solution in the solution explorer and choose "Project Dependencies".

Set the 'last' project to be depending on the first two. In this case Visual studio will build in the right order and will stop building if one of the dependencies fail to build. (Visual Studio 2013)

于 2014-06-24T09:39:32.153 回答