错误 MSB6006:“midl.exe”退出,代码为 2026

Posted

技术标签:

【中文标题】错误 MSB6006:“midl.exe”退出,代码为 2026【英文标题】:Error MSB6006: "midl.exe" exited with code 2026 【发布时间】:2015-04-23 15:30:42 【问题描述】:

我正在尝试在 Visual Studio 2013 中构建一个 VC++ 项目。在构建时,我收到如下错误消息:

Error   3   error MSB6006: "midl.exe" exited with code 2026. C:\somePath\V120\Microsoft.CppCommon.targets   1178    5   myProject

奇怪的是,如果我尝试在调试模式下构建,我不会收到错误消息。只有当我尝试在发布模式下构建时,我才会收到这个奇怪的错误。通过 *** 的所有解决方案和我的其他解决方法都无法诊断它,因此我最终发布了它。任何线索会有什么问题?

【问题讨论】:

这意味着“无法从早期的语法错误中恢复;正在中止”。我们看不到语法错误。查看“输出”窗口。 没有语法错误。我确实检查了 Microsoft 错误指南以了解此错误代码 2026,但它完全具有误导性,至少对我而言是这样。正在为调试版本和发布版本构建相同的代码,所以我无法理解为什么调试版本没有问题。 这是输出窗口中唯一的错误,可能是您所指的:还原 NuGet 包时发生错误:System.ArgumentException:路径不是合法形式。 【参考方案1】:

在 MIDL 编译期间生成 MIDL2026 错误消息。

MIDL2026 错误意味着 midl 已尝试但无法从早期的语法错误中恢复;中止编译。 MIDL 编译器通过添加或删除句法元素自动尝试从句法错误中恢复。此消息表明,尽管进行了这些恢复尝试,编译器仍检测到太多错误。更正指定的错误并重新编译。

首先,您可以尝试重置 Visual Studio 设置: 点击菜单中的工具->导入和导出设置->重置所有设置,再次加载Visual Studio时,可以选择C++环境。

其次,您可以使用 /SafeMode (devenv.exe) 来防止在 Visual Studio 启动时加载所有第三方 VSPackage。 此外,您可以使用 /ResetSkipPkgs (devenv.exe) 清除标记重新启用 VSPackage 的加载。

希望我的建议可以帮助你解决这个问题。

【讨论】:

【参考方案2】:

您可以通过从 MIDL 设置中删除 /mktyplib203 开关来解决您的问题。

Project->Properties->Configuration Properties->MIDL->General->MkTypLib Compatible: Yes (/mktyplib203)

【讨论】:

我已经尝试过了,但它根本不起作用。据我所知,这绝对不是一个解决方案,因为它会弄乱项目构建设置。

以上是关于错误 MSB6006:“midl.exe”退出,代码为 2026的主要内容,如果未能解决你的问题,请参考以下文章

错误 MSB6006:“lc.exe”以代码 -1 退出

错误 MSB6006:启用 ProGuard 时“java.exe”以代码 1 退出

错误 MSB6006 CL.exe 已退出,代码为2

错误MSB6006:“cmd.exe”退出,运行QT应用程序的代码1

error MSB6006: “cmd.exe”已退出,代码为 3。

error MSB6006: “aapt.exe”已退出,代码为-1073741819