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

VS2022设置x86/x64目标平台时丢失Windows运行时库报错

问题解决:.NET 4.8项目切换x86/x64时Windows.Devices命名空间缺失错误

核心问题

项目目标框架为.NET 4.8(无法升级),切换到x86/x64平台以生成MSIX安装包时,出现报错:

The type or namespace name 'Devices' does not exist in the namespace 'Windows' (are you missing an assembly reference?)

设置为Any CPU时无问题,硬盘损坏恢复项目后出现该异常;同时VS2019/2022无法创建.NET 4.8项目(仅显示.NET 6/7选项),尝试安装Microsoft.Windows.SDK.Contracts NuGet包失败,备份项目也存在相同问题。


解决步骤

1. 修复.NET Framework 4.8 SDK/运行时

VS无法显示.NET 4.8项目模板,大概率是SDK损坏或未安装完整:

  • 下载并修复安装Microsoft .NET Framework 4.8开发人员包
  • 安装完成后重启Visual Studio,确认能正常创建.NET 4.8项目

2. 手动添加Windows Runtime引用

x86/x64平台下WinRT引用缺失是常见原因,手动补充:

  • 右键项目 → 「添加」→「引用」→「浏览」
  • 定位到路径:C:\Program Files (x86)\Windows Kits\10\UnionMetadata\[你的SDK版本号]\Windows.winmd(比如10.0.22621.0)
  • 添加引用后,在引用属性面板设置:
    • 「复制本地」设为False
    • 「特定版本」设为False

3. 清理项目缓存与重新生成

缓存残留可能导致平台切换异常:

  • 删除项目根目录下的bin、obj文件夹
  • 清除NuGet缓存:「工具」→「NuGet包管理器」→「包管理器设置」→「清除所有NuGet缓存」
  • 重新生成整个解决方案

4. 检查项目文件的平台配置

卸载项目后编辑.csproj文件,确认平台配置一致:

  • 右键项目 → 「卸载项目」→ 「编辑xxx.csproj」
  • 查找是否存在针对x86/x64平台的条件性引用缺失,确保WinRT引用(如<Reference Include="Windows" />)未被限制在特定平台
  • 保存后重新加载项目并切换平台测试

5. 回退到VS2017测试

如果VS2019/2022兼容性仍有问题,尝试使用VS2017:

  • 安装VS2017时务必勾选.NET Framework 4.8相关组件
  • 加载项目后切换x86/x64平台验证是否恢复正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:32:25