VS2019构建ARM64 UWP项目报Microsoft.VCLibs MSB3779错误如何解决
问题场景
- 开发环境:Windows桌面端 + Visual Studio 2019(版本号16.11.15)
- 编译目标:为HoloLens 2等ARM架构设备构建UWP应用、DLL插件
- 故障表现:x64架构下项目可正常构建,切换到ARM64编译时触发Microsoft.VCLibs依赖报错,错误信息如下:
错误 MSB3779:当前正在构建的项目处理器架构为“ARM”,不受所引用的SDK“Microsoft.VCLibs, Version=14.0”支持。请考虑更改项目的目标处理器架构(在Visual Studio中可通过Configuration Manager(配置管理器)完成设置),选择该SDK支持的架构:“x86, x64”。
- 已尝试无效操作:无法在解决方案可视化界面找到移除该依赖的入口;手动下载安装Microsoft.VCLibs.arm64.14.00.Desktop.appx包时,因本地设备为x64架构,提示无法完成安装。

解决方案
首先纠正操作误区:带Desktop后缀的VCLibs安装包是给桌面桥接应用准备的,且ARM64架构的appx包无法直接安装在x64架构的开发机上,不需要手动安装这类包到本地设备,问题根源是项目的VCLibs引用配置错误,没有正确匹配UWP ARM64编译的依赖规则。
按以下步骤操作即可修复:
1. 补全VS的ARM64 C++ UWP组件
- 打开Visual Studio Installer,找到对应VS2019实例点击「修改」
- 勾选「使用C的通用Windows平台开发」工作负载,在右侧安装详情栏确认勾选*ARM64的Visual C运行时*、适用于ARM64的C++通用Windows平台工具两个组件,完成安装后重启Visual Studio。
2. 修正项目文件中的VCLibs引用配置
可视化界面找不到依赖移除入口时,直接编辑项目配置文件修改:
- 右键解决方案资源管理器中的目标项目,选择「卸载项目」,再次右键选择「编辑 你的项目名.vcxproj」
- 在打开的项目文件中搜索所有
Microsoft.VCLibs相关的SDK引用节点,找到类似下方的错误配置(这类配置手动限定了支持的架构为x86、x64,或者引用了桌面版VCLibs):
<SDKReference Include="Microsoft.VCLibs, Version=14.0"> <TargetedSDKArchitecture>x86;x64</TargetedSDKArchitecture> </SDKReference>
- 删除上述错误的引用节点,替换为无架构限制的标准UWP VCLibs引用,该配置会在编译时自动匹配当前选择的目标架构:
<SDKReference Include="Microsoft.VCLibs, Version=14.0" />
- 保存vcxproj文件修改,右键项目选择「重新加载项目」。
3. 清理缓存后重新编译
- 关闭Visual Studio,手动删除项目根目录下的
bin、obj文件夹,清除旧的构建缓存 - 重新打开解决方案,打开配置管理器,确认ARM64平台下对应项目的目标平台设置为
ARM64(注意HoloLens 2使用ARM64架构,不要误选32位ARM平台) - 重新执行构建即可。
额外排查项
如果完成上述操作后仍然报错:
- 检查解决方案中所有引用的第三方库、依赖DLL是否提供了ARM64版本,若某依赖仅支持x86/x64,会间接拉取错误架构的VCLibs依赖触发报错
- 展开项目的「引用」节点,右键查看Microsoft.VCLibs的属性,确认其路径中包含
\UAP\字段(代表是UWP版本的VCLibs),如果路径包含\Desktop\字段,直接右键删除该引用,重新添加UWP版本的VCLibs引用即可。
内容的提问来源于stack exchange,提问作者iv67
相关产品推荐
相关产品推荐

