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

ARM64笔记本升级ASP.NET Core 3.1至8.0后加载hostfxr.dll异常

问题诊断与解决方案

核心原因

你的问题本质是ARM64架构笔记本上,.NET运行时位数不匹配+VS/IIS Express默认调用x86运行时,导致系统错误地去x86路径下寻找不匹配版本的hostfxr.dll,而非使用ARM64版本的.NET 8运行时。

分步解决方案

1. 强制项目使用ARM64架构调试

  • 打开项目属性 → 生成 → 平台目标,直接选择ARM64(不要用Any CPU,ARM64机器上Any CPU可能默认走x86兼容层)
  • 切换到调试选项卡,取消勾选「启用本机代码调试」(若不需要),避免架构冲突干扰调试流程

2. 修正VS与IIS Express的运行架构配置

  • 打开VS2022安装器,确认已安装**.NET 8.0 ARM64 SDK**(之前可能误装了x86版本)
  • 修改IIS Express配置文件:
    找到路径%USERPROFILE%\Documents\IISExpress\config\applicationhost.config,编辑文件,在<applicationPoolDefaults>节点中添加/修改:
    <processModel enable32BitAppOnWin64="false" />
    
    强制IIS Express使用64位(ARM64)运行模式

3. 验证并修复.NET运行时环境

  • 以管理员身份打开命令提示符,运行:
    dotnet --info
    
    确认输出中存在ARM64架构的.NET 8.0 SDK和运行时,示例如下:
    .NET SDK:
     Version:           8.0.16
     Architecture:      arm64
    .NET Runtime:
     Version:           8.0.16
     Architecture:      arm64
    
  • 若未显示ARM64版本,卸载现有.NET 8 SDK,重新下载ARM64专属版本安装
  • 运行全局缓存清理:
    dotnet clean --all
    

4. 调整环境变量优先级

  • 打开「此电脑」→ 属性 → 高级系统设置 → 环境变量
  • 在系统变量的PATH中,将C:\Program Files\dotnet\(ARM64版本的dotnet路径)移至C:\Program Files (x86)\dotnet\(x86版本路径)之前,确保系统优先调用ARM64的dotnet host

5. 极端情况:禁用VS的x86兼容层

  • 右键VS2022快捷方式 → 属性 → 兼容性
  • 取消勾选「以兼容模式运行这个程序」,勾选「以管理员身份运行此程序」
  • 进入「更改高DPI设置」,勾选「替代高DPI缩放行为」,选择「应用程序」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:06:04