升级至.NET 7后运行报错:无法加载ASP.NET Core运行时
将.NET Core 2.1应用升级至.NET 7后,编译构建成功,但运行时抛出以下错误(已安装.NET 7.0.11):
HTTP Error 500.31 - Failed to load ASP.NET Core runtime
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.
Specific error detected by ANCM:
You must install or update .NET to run this application. App: {path}\bin\Debug\net7.0{appname}.Web.dll Architecture: x64 Framework: 'Microsoft.NETCore.App', version '7.0.11' (x64) .NET location: C:\Program Files\dotnet\ The following frameworks were found: 2.1.30 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 3.1.21 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 5.0.12 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 5.0.14 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 6.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 6.0.14 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 6.0.21 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 7.0.10 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Learn about framework resolution: https://aka.ms/dotnet/app-launch-failed To install missing framework, download: https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=7.0.11&arch=x64&rid=win10-x64
Troubleshooting steps:
确认.NET 7.0.11安装状态
打开命令提示符或PowerShell,执行dotnet --list-runtimes,查看输出是否包含Microsoft.NETCore.App 7.0.11 [x64]。如果没有,说明安装未成功,重新下载对应x64版本的.NET 7.0.11运行时安装包执行安装。修复.NET安装
若确认已安装但列表未显示,执行dotnet --repair命令,该命令会自动检测并修复损坏或缺失的运行时组件。调整项目框架依赖配置
打开项目的.csproj文件,确认<TargetFramework>为net7.0。如果存在<RuntimeFrameworkVersion>指定了7.0.11,可移除该节点,让应用自动适配已安装的最高兼容7.0版本(如7.0.10)。使用自包含部署模式发布
若不想依赖系统运行时,修改.csproj添加以下配置:<PublishSingleFile>true</PublishSingleFile> <SelfContained>true</SelfContained> <RuntimeIdentifier>win-x64</RuntimeIdentifier>然后执行发布命令
dotnet publish -c Release -r win-x64,发布包会包含.NET 7.0.11运行时,无需系统提前安装。检查IIS应用池架构
确保IIS应用池的架构设置为x64,若应用池是x86,会优先查找x86版本的.NET运行时,导致无法找到x64的7.0.11。
内容的提问来源于stack exchange,提问作者Angelo

