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

使用MSIX Packaging Project打包C++ UWP应用遇头文件缺失错误求助

问题描述

使用Visual Studio的MSIX Packaging Project打包C++ UWP应用时,发布阶段出现编译错误:

编译命令:

CL.exe /c /I"Debug\Generated Files\\" /ZI /JMC /nologo /W3 /WX- /diagnostics:column /sdl /Od /Oy- /D USE_IMPORT_EXPORT /D NOMINMAX /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++20 /permissive- /Yu"stdafx.h" /Fp"Debug\QMirrorCore.pch" /Fo"Debug\\" /Fd"Debug\vc143.pdb" /external:W3 /Gd /TP /analyze- /FC /errorReport:queue  /bigobj ProviderS3.cpp

错误信息:

Cannot open include file: 'aws/core/Aws.h': No such file or directory
Cannot open include file: 'nlohmann/json.hpp': No such file or directory

已在C++ UWP应用项目中配置这些头文件的包含目录,Debug和Release模式下应用本身可正常编译;添加JSON、AWS等外部库前,MSIX打包流程正常。但找不到在MSIX Packaging Project中配置包含目录的入口,原以为依赖项目的包含目录会自动继承。

解决办法

  • 检查依赖引用方式
    确保MSIX Packaging Project通过项目引用关联你的C++ UWP应用项目:右键MSIX项目 → 选择"添加" → "项目引用",勾选目标UWP应用项目,这样打包时会自动继承应用项目的编译配置(包括包含目录)。

  • 同步依赖配置
    若已添加项目引用仍报错,右键MSIX项目 → "卸载项目",再右键选择"重新加载项目",触发Visual Studio重新同步依赖项目的配置信息。

  • 手动添加包含目录
    上述方法无效时,可修改MSIX项目的.wapproj文件手动配置:

    1. 右键MSIX项目 → "卸载项目"。
    2. 右键卸载后的项目 → "编辑项目文件"。
    3. 在<PropertyGroup>节点中添加(替换为你的实际路径):
      <AdditionalIncludeDirectories>$(SolutionDir)path\to\aws\include;$(SolutionDir)path\to\nlohmann\include;$(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      
    4. 保存文件后重新加载项目,再尝试打包。
  • 确认外部库部署配置
    检查AWS、nlohmann等外部库的部署配置:在UWP应用项目的"属性" → "VC++目录"中确认包含目录和库目录在所有编译模式下一致;在"链接器" → "输入"中确认库文件已正确引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:13:15