我关注了官方说明安装最新版本的 .NET SDK。我选择了“包管理器(Microsoft feed)”方法。完成这些说明并运行后dotnet --version
,我得到以下输出:
The command could not be loaded, possibly because:
* You intended to execute a .NET application:
The application '--version' does not exist.
* You intended to execute a .NET SDK command:
No .NET SDKs were found.
Download a .NET SDK:
https://aka.ms/dotnet/download
Learn about SDK resolution:
https://aka.ms/dotnet/sdk-not-found
我阅读了这两个网页,但它们没有为我提供解决方案。其中一个让我回到安装 .NET SDK 的过程的开始。另一个讨论了 SDK 解析的工作原理,主要是在运行应用程序时。但这对我使用 CLI 工具没有帮助dotnet
。
我发现有趣的是,如果我运行dotnet --info
,我会得到以下输出,这证实它认为没有安装 SDK:
Host:
Version: 7.0.9
Architecture: x64
Commit: 8e9a17b221
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/lib/dotnet]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
我认为这很奇怪,因为如果我使用 APT 检查我安装了哪些软件包,我会看到输出,看起来像是我按照官方安装说明操作后,我确实安装了一个版本的 SDK(7.0.109):
$ sudo apt list --installed | grep dotnet
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
dotnet-apphost-pack-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-host-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-hostfxr-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-runtime-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
dotnet-sdk-7.0/jammy,now 7.0.306-1 amd64 [installed]
dotnet-targeting-pack-7.0/jammy-updates,jammy-security,now 7.0.109-0ubuntu1~22.04.1 amd64 [installed,automatic]
答案1
我的问题是,我通过混合使用 Microsoft feed 包和 Ubuntu feed 包安装了 .NET SDK 版本 7。这在他们的APT 故障排除步骤。我通过 WSL 使用 22.04,所以这个问题适用于我。
我的解决方案是遵循他们为那些出于任何原因不依赖 Microsoft feed 的人推荐的方法,即从我的系统中完全删除 Microsoft feed,然后按照他们的说明使用 Ubuntu feed 进行安装。完成此操作后,我的dotnet --info
输出显示了已安装的 SDK:
.NET SDK:
Version: 7.0.109
Commit: 3e9283a8e9
Runtime Environment:
OS Name: ubuntu
OS Version: 23.04
OS Platform: Linux
RID: ubuntu.23.04-x64
Base Path: /usr/lib/dotnet/sdk/7.0.109/
Host:
Version: 7.0.9
Architecture: x64
Commit: 8e9a17b221
.NET SDKs installed:
7.0.109 [/usr/lib/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.9 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/lib/dotnet]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
因为我使用的是 22.04,但我想安装并使用最新的非预览版 SDK(截至今天为 7),所以我必须先升级到 23.04。我按照在第三方网站上找到的说明进行操作,即运行。sudo do-release-upgrade
当我这样做时,它告诉我,我已经在运行可以升级到的最新版本,除非我调整配置文件并重试。所以我按照说明进行操作,然后再次尝试升级,然后我运行的是 23.04,这样我就可以执行上述步骤来安装 .NET SDK 7。