安装.NET 6后.NET 3.1项目随机报错缺少3.1.27运行时
.NET 6安装后.NET 3.1项目随机出现框架缺失错误的成因解析
环境信息
已安装的SDK版本
2.1.504 2.1.510 2.1.511 2.1.518 2.1.807 2.1.810 2.1.811 3.1.108 3.1.302 3.1.414 5.0.210 6.0.302 (default)
已安装的运行时版本
-Microsoft.AspNetCore.All 2.1.8 -Microsoft.AspNetCore.All 2.1.14 -Microsoft.AspNetCore.All 2.1.15 -Microsoft.AspNetCore.All 2.1.19 -Microsoft.AspNetCore.All 2.1.22 -Microsoft.AspNetCore.All 2.1.23 -Microsoft.AspNetCore.App 2.1.8 -Microsoft.AspNetCore.App 2.1.14 -Microsoft.AspNetCore.App 2.1.15 -Microsoft.AspNetCore.App 2.1.19 -Microsoft.AspNetCore.App 2.1.22 -Microsoft.AspNetCore.App 2.1.23 -Microsoft.AspNetCore.App 3.1.6 -Microsoft.AspNetCore.App 3.1.8 -Microsoft.AspNetCore.App 3.1.20 -Microsoft.AspNetCore.App 3.1.22 -Microsoft.AspNetCore.App 3.1.26 -Microsoft.AspNetCore.App 5.0.13 -Microsoft.AspNetCore.App 6.0.6 -Microsoft.NETCore.App 2.1.8 -Microsoft.NETCore.App 2.1.14 -Microsoft.NETCore.App 2.1.15 -Microsoft.NETCore.App 2.1.19 -Microsoft.NETCore.App 2.1.22 -Microsoft.NETCore.App 2.1.23 -Microsoft.NETCore.App 3.1.6 -Microsoft.NETCore.App 3.1.8 -Microsoft.NETCore.App 3.1.20 -Microsoft.NETCore.App 3.1.22 -Microsoft.NETCore.App 3.1.26 -Microsoft.NETCore.App 5.0.13 -Microsoft.NETCore.App 6.0.6 -Microsoft.WindowsDesktop.App 3.1.6 -Microsoft.WindowsDesktop.App 3.1.8 -Microsoft.WindowsDesktop.App 3.1.20 -Microsoft.WindowsDesktop.App 3.1.22 -Microsoft.WindowsDesktop.App 5.0.13 -Microsoft.WindowsDesktop.App 6.0.6
问题现象
所有项目目标框架为.NET 3.1,安装.NET 6 SDK后,构建、测试或运行阶段随机出现以下错误:
error Architecture: x64 error Framework: 'Microsoft.AspNetCore.App', version '3.1.27' (x64) error .NET location: C:\Program Files\dotnet\ error The following frameworks were found: error 2.1.8 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 2.1.14 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 2.1.15 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 2.1.19 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 2.1.22 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 2.1.23 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 3.1.6 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 3.1.8 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 3.1.20 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 3.1.22 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 3.1.26 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 5.0.13 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error 6.0.7 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] error Learn about framework resolution: error https://aka.ms/dotnet/app-launch-failed error To install missing framework, download: error https://aka.ms/dotnet-core-applaunch? framework=Microsoft.AspNetCore.App&framework_version=3.1.27&arch=x64&rid=win10-x64
问题成因
- SDK默认版本冲突:安装.NET 6 SDK后,它被设为环境默认SDK。当构建.NET 3.1项目时,默认使用的.NET 6 SDK遵循“最新兼容补丁版本优先”规则,会自动尝试解析.NET 3.1的最新补丁版(3.1.27),但当前环境仅安装到3.1.26,导致框架缺失报错。
- 无明确SDK版本约束:环境中未通过
global.json文件指定.NET 3.1 SDK为项目构建的默认版本,导致构建过程中随机调用默认的.NET 6 SDK,触发对更高版本运行时的依赖请求。 - 运行时版本解析干扰:.NET 6 SDK可能触发了部分运行时更新(错误日志中显示存在
Microsoft.AspNetCore.App 6.0.7,但初始安装的运行时列表中为6.0.6),这种非完整更新干扰了.NET 3.1运行时的版本解析逻辑,导致随机请求不存在的3.1.27版本。
内容的提问来源于stack exchange,提问作者Ajai Singh
相关产品推荐
相关产品推荐

