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

rad*_*vus 11 development microsoft dotnet sdk

我访问了以下Microsoft 官方链接来安装.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
Run Code Online (Sandbox Code Playgroud)

然后要安装 SDK,您应该运行:

sudo apt-get update && sudo apt-get install -y dotnet-sdk-6.0
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-6.0
Run Code Online (Sandbox Code Playgroud)

但是当我运行所有这些时,我遇到了一个奇怪的事情,即运行时“安装了一半”。

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

另外,我无法运行简单的命令,$ dotnet --version 它会指出没有安装 SDK,并且该命令无法运行。很混乱。

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

无法找到包 dotnet-sdk-6.0

Microsoft 表示选择以下链接来解决该问题:APT 故障排除部分

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

小智 30

我让它使用 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*'
Run Code Online (Sandbox Code Playgroud)
  1. 创建文件:
sudo touch /etc/apt/preferences.d/dotnet.pref
Run Code Online (Sandbox Code Playgroud)

内容:

Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001
Run Code Online (Sandbox Code Playgroud)
  1. 安装.NET SDK 6.0
sudo apt update
sudo apt install dotnet-sdk-6.0
Run Code Online (Sandbox Code Playgroud)

我得到了最新版本的SDK:

$ dotnet --list-sdks
6.0.400 [/usr/share/dotnet/sdk]
Run Code Online (Sandbox Code Playgroud)