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

已安装ASP.NET Core 3.1运行时,应用启动提示需.NET 6.0.12

问题描述

在Ubuntu WSL环境执行dotnet run运行ASP.NET Core 3.1应用时,出现如下报错:

It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '6.0.12' was not found.

  • The following frameworks were found:
    3.1.32 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
    5.0.17 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

项目.csproj明确指定目标框架为netcoreapp3.1:

<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>xxxxxx</RootNamespace>
    <AssemblyName>xxxxxxxx</AssemblyName>
    <AssemblyVersion>1.0.1.0</AssemblyVersion>
    <FileVersion>1.0.1.0</FileVersion>
    <Version>1.0.1</Version>
  </PropertyGroup>

本地已安装的SDK和运行时信息:

$ dotnet --list-sdks
3.1.426 [/usr/share/dotnet/sdk]
5.0.408 [/usr/share/dotnet/sdk]
6.0.404 [/usr/share/dotnet/sdk]

$ dotnet --list-runtimes
Microsoft.AspNetCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.17 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

已确认ASP.NET Core 3.1运行时存在,但应用无法启动,求原因及解决办法。


可能原因

  1. 全局默认SDK版本为.NET 6:dotnet run默认会使用系统中最高版本的SDK(此处为6.0.404)构建项目,尽管项目目标框架是3.1,但.NET 6 SDK在构建过程中可能生成依赖.NET 6运行时的配置,引发版本不兼容问题。
  2. runtimeconfig.json配置异常:项目构建后生成的[项目名].runtimeconfig.json可能被错误配置为要求.NET 6运行时,比如构建过程中被高版本SDK覆盖。
  3. NuGet缓存冲突:本地NuGet缓存中可能存在.NET 6版本的依赖包,导致构建时引入不兼容的依赖项。

解决办法

1. 强制指定项目使用的SDK版本(推荐)

在项目根目录创建global.json文件,锁定使用.NET 3.1 SDK构建运行:

{
  "sdk": {
    "version": "3.1.426"
  }
}

创建后重新执行dotnet run,系统会自动使用指定的3.1版本SDK处理项目。

2. 显式指定运行时启动

执行dotnet run时通过--runtime参数指定使用.NET Core 3.1运行时:

dotnet run --runtime netcoreapp3.1

3. 检查修正runtimeconfig.json

找到项目输出目录下的[项目名].runtimeconfig.json,确保其runtimeOptions配置为3.1版本:

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.1",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "3.1.32"
    }
  }
}

若配置错误,手动修正后再启动应用。

4. 清理缓存并重新构建

执行以下命令清理NuGet缓存,重新构建项目:

dotnet nuget locals all --clear
dotnet clean
dotnet restore
dotnet run

内容的提问来源于stack exchange,提问作者Fatih Dumanlı

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10