找不到框架 'Microsoft.NETCore.App',版本“5.0.13”

The framework 'Microsoft.NETCore.App', version '5.0.13' was not found

在CentOS 8的终端,我尝试运行以下:

dotnet -h

错误信息:

The framework 'Microsoft.NETCore.App', version '5.0.13' was not found.

我不知道发生了什么。

我已经尝试了很多关于 Google 的说明。我尝试过的一些步骤如下:

https://docs.microsoft.com/en-us/dotnet/core/versions/selection\

https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos

https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-run

sudo dnf install dotnet-sdk-5.0
sudo dnf install aspnetcore-runtime-5.0
sudo dnf install dotnet-runtime-5.0

我还尝试在 CentOS 上启用快照并安装 .NET Runtime 5.0

https://snapcraft.io/install/dotnet-runtime-50/centos

sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install dotnet-runtime-50

但是 none 解决了问题。


更新:2022 年 1 月 26 日

输入以下命令:

dotnet --info

将收到以下消息:

然后,我按照下面解释的步骤操作:

https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-mixup

通过卸载并重新安装 dotnet

sudo dnf remove packages-microsoft-prod
sudo dnf remove 'dotnet*' 'aspnet*' 'netstandard*'
sudo dnf install dotnet-sdk-5.0

然后,我尝试以下操作:

dotnet --info

系统说了类似的话(忘了截图):

dotnet cannot be found at
/user/var/bin/.... dotnet...
(I forget the exact path)

这花了太多时间来修复...我有更重要的任务要做。我最终放弃了进一步调试这个错误。我删除了 CentOS 并重新安装了一个全新的干净的 CentOS,然后重新开始。我相信我一定搞砸了多个冲突的 dotnet 版本和多个错误缓存。

我会在完成重新安装新的 CentOS 后 post 另一个更新。


更新 2:2022 年 1 月 26 日(已修复)

好的,问题已解决。通过结合您提供的所有提示,这是我所做的:

首先,全新安装 CentOS 8

继续安装“dotnet”

sudo dnf install dotnet-sdk-3.1
sudo dnf install dotnet-sdk-5.0

通过 运行 控制台应用程序进行测试:

dotnet ConsoleApp2.dll

现在一切正常。非常感谢您的时间和帮助。

已安装多个 dotnet 运行时和 sdk 源。这导致多个冲突的二进制路径和程序集缓存崩溃。

第 1 步:全新安装 CentOS

第 2 步:安装所需的运行时版本,例如:

sudo dnf install dotnet-sdk-3.1
sudo dnf install dotnet-sdk-5.0

第 3 步:通过 运行 控制台应用程序进行测试:

dotnet ConsoleApp.dll

完成。


更新:备选方案 2:运行 没有安装任何运行时 CentOS 的应用程序

另一种选择是将 .NET Core 项目作为“self-contained”发布到单个二进制文件中。

这是发布后的样子示例,只有 1 个文件:

将编译后的二进制文件复制到 CentOS

在终端,浏览到包含 self-contained 二进制文件的文件夹,例如:

cd /home/admin/testapp

接下来,是允许对文件的执行权限:

sudo chmod 777 ConsoleApp2

执行应用程序:

./ConsoleApp2