未找到框架 'Microsoft.AspNetCore.App',版本“5.0.0”。当它安装在 $PATH 里面时

The framework 'Microsoft.AspNetCore.App', version '5.0.0' was not found. when it is installed and inside $PATH

我在 Manjaro 工作 Linux。

我有一个 .NET Core 项目。当我 运行 dotnet build .

时,解决方案构建良好

然而,当我 运行:

dotnet-ef update --project Bejebeje.DataAccess --startup-project Bejebeje.Mvc

我收到以下奇怪的错误:

Build started...
Build succeeded.
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '5.0.0' was not found.
  - No frameworks were found.

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

The specified framework can be found at:
 - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=5.0.0&arch=x64&rid=manjaro-x64

这很奇怪,因为我已经安装了 .NET 5.0 的 SDK 和 运行次。

bejebeje|feature/upgrade-to-net-5 ⇒ dotnet --list-sdks
3.1.108 [/usr/share/dotnet/sdk]
5.0.103 [/usr/share/dotnet/sdk]
bejebeje|feature/upgrade-to-net-5 ⇒ dotnet --list-runtimes
Microsoft.NETCore.App 3.1.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
bejebeje|feature/upgrade-to-net-5 ⇒

为什么会这样?我该怎么做才能解决这个问题?

我遇到了同样的问题。您需要有一个 ASP.NET 运行时。

它有点令人困惑且容易被忽视,但它说您需要一个 Microsoft.AspNetCore.App 运行时,并且您的 dotnet --list-runtimes 仅列出 Microsoft.NETCore.Apps.

ArchWiki提到:

This is caused because the runtime is shipped as a separate package in Arch. You just need to make sure you have the aspnet-runtime package installed as well.

要安装 .NET 5 运行时:

sudo pacman -Sy aspnet-runtime

或者如果您需要 3.1 版本:

sudo pacman -Sy aspnet-runtime-3.1

现在有一个 ASP 运行时可用:

$ dotnet --list-runtimes
Microsoft.AspNetCore.App 5.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]  # <<<
Microsoft.NETCore.App 5.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]