【问题标题】:Error MSB6006: "midl.exe" exited with code 2026错误 MSB6006:“midl.exe”退出,代码为 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

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

【问题讨论】:

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

标签: c++ visual-c++ visual-studio-2013


【解决方案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)

    【讨论】:

    • 我已经尝试过了,但它根本不起作用。据我所知,这绝对不是一个解决方案,因为它会弄乱项目构建设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 2014-12-15
    • 2018-05-19
    • 2012-10-18
    • 2020-06-19
    • 2013-02-28
    • 1970-01-01
    相关资源
    最近更新 更多