You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio使用/std:c++20且禁用/ZW时无法构建UWP应用问题排查

问题根因说明

这不是你的配置问题,也不属于IDE BUG,是Visual Studio 2019本身的设计限制导致的:

  • 你提到的关闭/ZQ属于笔误,实际控制Windows运行时扩展的参数是/ZW,VS2019版本的MSVC编译器明确不支持/ZW(C++/CX编译选项)与/std:c++20参数同时启用,因此会抛出D8016错误,该限制是官方预设的。
  • 你关闭/ZW后出现WMC1007报错的原因是:你创建的是UWP类型项目,项目构建流程默认依赖WinRT元数据解析能力,/ZW参数负责提供该能力,关闭后构建流程无法读取Windows.metadata文件,和你是否安装Windows SDK无关。

可行解决方案

有两个可选方案解决该问题:

  1. 升级到Visual Studio 2022,该版本的MSVC编译器已经支持/ZW参数与/std:c++20同时启用,直接打开原有项目即可正常构建。
  2. 保留VS2019的前提下,将项目的C++/CX实现替换为C++/WinRT实现:C++/WinRT是纯标准C的WinRT绑定方案,不需要启用/ZW参数,天然兼容C20标准。

另外你贴出的编译命令中同时存在/std:c17和/std:c++20参数是正常的,前者对应C语言标准,后者对应C++语言标准,二者不冲突,也不是导致报错的原因。

内容的提问来源于stack exchange,提问作者alexmro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:06:02