c++ - MSVC2013 : How to avoid aborting build process with Pre-build script in error (error MSB3073: :VCEnd"exited with code -1)

标签 c++ c visual-studio pre-build-event

我在 MSVC13 中设置了一个预构建事件,该事件退出时出现错误 MSB3073: :VCEnd",退出代码为 -1。 而且我无法绕过此错误,即使 bat 文件因错误退出,我也不希望构建过程停止。

我已经配置

BuildEvents > Pre-Build Event

调用bat文件 命令行:

call $(ProjectDir)\pre_build.bat $(Configuration)=1

此bat文件包含2次对其他bat文件的调用。第一个退出时出现错误(但我不在乎,因为我想要它完成的子任务已完成),第二个则正常。

在 pre-build.bat 中,我尝试拦截此错误并更新值以表明 MSVC 一切正常,但我无法成功。 我尝试回显 ERRORLEVEL 但它包含 0。 我尝试将 ERRORLEVEL 设置为 0,但在 MSVC 级别没有更改任何内容。 我尝试在 bat 文件末尾添加 exit 0、exit/b 0 或 @exit 0,但没有改变。

我发现这个链接( https://blogs.msdn.microsoft.com/astebner/2006/08/08/how-to-make-visual-studio-2005-ignore-return-codes-from-pre-build-events/ )解释了如何告诉 MSVC 忽略错误,但它不起作用,因为它是为 MSVC2005 编写的,并且 vcxproj 中 PreBuildEvent 的语法已更改。

如果我在控制台中运行我的脚本,它会因错误而退出,但是,正如前面所说,我不关心这个错误,部分工作已经完成。

我还尝试以管理员身份运行 MSVC,没有任何变化。

我的 pre-build.bat 的内容:

call build.bat %* TOOLCHAIN=mdk4cc5 TC_NO_CHECK=1

build.bat 运行 SCons(我对 SCons 没有任何了解)

如果您知道如何忽略 MSVC 中的此错误以便继续构建过程(无论它是否干净),这将非常有帮助,因为我已经在这方面花了一天时间......

非常感谢您的反馈和解答。

最佳答案

您的命令输出可能在某处包含“错误”一词。

我们这里有一些脚本echo XX send-msg 19 82 Error :A KANAL A AUSGEFALLEN Error ge

然后构建输出包含:

2> ------ Erstellen gestartet: Projekt: DecoderTest, Konfiguration: Debug Any CPU ------
2>  Datei nicht gefunden
2>EXEC : XX   send-msg 19 82 error : A   KANAL A AUSGEFALLEN   Error   ge
2>  
2>  D:\Projekte\[...]\DecoderTest\\..\..\..\TableConverterTraverse.bat: Durchlauf erfolgreich.
2>C:\Program Files (x86)\Microsoft Visual Studio\[...]: error MSB3073: Der Befehl "D:\Projekte\[...]\DecoderTest\InvokeTableConverter.bat
2>C:\Program Files (x86)\Microsoft Visual Studio\[...]: error MSB3073: " wurde mit dem Code -1 beendet.
========== Erstellen: 1 erfolgreich, 1 fehlerhaft, 39 aktuell, 0 übersprungen ==========

静默命令输出后,构建成功。

关于c++ - MSVC2013 : How to avoid aborting build process with Pre-build script in error (error MSB3073: :VCEnd"exited with code -1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55627706/

相关文章:

c++ - 我们可以根据引用参数类型重载构造函数吗?

c++ - 更改 boost::property_tree 读取将字符串转换为 bool 值的方式

.net - 在 Visual Studio 中调试时如何查看我的应用程序线程?

c++ - 涉及 restrict 关键字的编译器错误

c++ - 用概念检查属性的类型

c - 从文件 fscanf 格式读取十六进制数据编译时警告

php - 如何在 php 扩展中访问 http header

arrays - 该程序将每行的第三个元素的值设置为 20。为什么它不起作用?

.net - 获取.Net程序集的PublicKeyToken

node.js - 具有 React、NPM 和调试功能的 Outlook Web-App