为什么这些方法都无法在 22.04(Jammy Jellyfish)上安装 .Net Core SDK 和运行时?

为什么这些方法都无法在 22.04(Jammy Jellyfish)上安装 .Net Core SDK 和运行时?

我去了以下地方微软官方安装链接.NET Core 6.x(SDK 和运行时)它们将无法工作。

基本上,它告诉你:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

然后要安装 SDK,您需要运行:

sudo apt-get update && sudo apt-get install -y dotnet-sdk-6.0

然后安装运行时,它说运行:

sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-6.0

但是当我运行所有这些时,我发现一个奇怪的东西,运行时“安装了一半”。

我可以运行$ dotnet --list-sdks并且它不会报告任何 SDK。

另外,我无法运行简单的命令。$ dotnet --version 它会提示未安装 SDK,因此命令无法运行。非常令人困惑。

我也收到类似这样的错误:

无法找到包 dotnet-sdk-6.0

微软建议选择以下链接来解决这个问题:APT 故障排除部分

尝试过 Snap 我也尝试安装 snap。同样,dotnet 运行时仍然无法正常工作。我尝试了各种删除和重新启动以及许多选项,但始终无法正确安装 SDK。

答案1

我使用 APT 包解决方案使其运行,实际上 Ubuntu 包(Jammy feed)和 Microsoft 包(PMC)之间存在冲突,更多信息请参见此处: https://github.com/dotnet/core/issues/7699

以下步骤的解决方案对我有用: Use .NET 6 Package via PMC

  1. 删除所有 .NET 包
sudo apt remove 'dotnet*'
sudo apt remove 'aspnetcore*'
  1. 创建文件:
sudo touch /etc/apt/preferences.d/dotnet.pref

内容:

Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001
  1. 安装 .NET SDK 6.0
sudo apt update
sudo apt install dotnet-sdk-6.0

我获得了最新版本的 SDK:

$ dotnet --list-sdks
6.0.400 [/usr/share/dotnet/sdk]

答案2

以下简单的命令已经为我解决了这个问题:

sudo apt dist-upgrade

相关内容