首页
/ ASP.NET Core Windows 主机捆绑包在ARM64架构下的升级问题解析

ASP.NET Core Windows 主机捆绑包在ARM64架构下的升级问题解析

2025-05-03 08:53:08作者:沈韬淼Beryl

在.NET 10预览版2中,Windows主机捆绑包安装程序的改动虽然解决了在ARM64机器上运行x64和x86 Web应用程序时ANCM v2的问题,但却意外引入了升级场景下的严重缺陷。本文将深入分析这一技术问题的成因、影响范围以及解决方案。

问题背景

Windows主机捆绑包是ASP.NET Core应用在IIS环境下运行的关键组件。当开发者在ARM64架构的机器上从早期版本升级到.NET 10预览版2时,系统会错误地删除而非更新某些核心组件,包括:

  1. aspnetcorev2.dll文件
  2. applicationhost.config中的模块条目

这种异常行为导致IIS和IIS Express在ARM64机器上无法正常工作,影响开发和生产环境的稳定性。

问题根源

通过分析安装日志文件dd_dd_DotNetCoreWinSvrHosting__20250303210516_001_AspNetCoreModuleV2_arm64.log,可以发现关键错误信息:

MSI (s) (48:E0) [21:05:26:022]: Disallowing installation of component: {4B6BB33A-01F0-48C7-BCE9-5A5514AC0431} since the same component with higher versioned keyfile exists

这表明Windows Installer(MSI)错误地阻止了新组件的安装,尽管这些组件实际上是通过#59483新增的。这种版本检测机制的误判导致了组件被删除而非更新。

临时解决方案

对于遇到此问题的用户,目前可采取以下临时解决方案:

  1. 完全卸载所有已安装的主机捆绑包版本
  2. 重新安装.NET 10预览版2的主机捆绑包

这一操作可以绕过升级路径中的问题,确保所有组件正确安装。

技术团队响应

微软技术团队已经确认并定位了该问题的根本原因。开发人员@lextm和@joeloff已经准备了修复方案,相关提交包括:

  • 提交b9ed491
  • 提交b2adfba
  • 提交9b68a79

这些修复预计将在后续版本中发布,彻底解决ARM64架构下的升级问题。

对开发者的建议

对于使用ARM64架构设备的ASP.NET Core开发者,建议:

  1. 在升级到.NET 10预览版2时,预先备份IIS配置
  2. 按照临时解决方案操作,避免升级路径
  3. 关注后续版本的更新说明,及时应用修复版本

这个问题虽然影响范围有限(仅ARM64架构),但对于使用这类设备的开发者而言却可能造成严重困扰。理解问题的本质有助于开发者更好地规避风险,确保开发环境的稳定性。

登录后查看全文
热门项目推荐
相关项目推荐