错误 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:启用 ProGuard 时“java.exe”以代码 1 退出
错误MSB6006:“cmd.exe”退出,运行QT应用程序的代码1