我在 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/