我已经从 https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu 网站安装了 dotnet 的运行时和 sdk 版本 7.0。运行时 - 我认为 - 工作正常,但另一方面,当我运行此命令时,SDK 不会显示:
dotnet --list-sdks
它没有显示任何内容,当我运行此命令时:
dotnet --info
如图所示:
Host:
Version: 7.0.5
Architecture: x64
Commit: (some hex value)
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.16 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.16 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.5 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/share/dotnet]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
我什至给了sudo权限,仍然没有显示任何SDK。
我使用的是 Ubuntu 22.04
地点: SDK:/usr/share/dotnet。 在/usr/share/dotnet里面,三个目录:
-sdk
-sdk-manifests
-templates
运行时:/usr/lib/dotnet。在/usr/lib/dotnet中,三个目录和三个文件:
-host
-packs
-shared
-dotnet -executable-
-LICENSE.txt
-ThirdPartyNotices.txt
我已完成的步骤: 1.
# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# Install Microsoft signing key and repository
sudo dpkg -i packages-microsoft-prod.deb
# Clean up
rm packages-microsoft-prod.deb
# Update packages
sudo apt update
apt install dotnet-sdk-7.0.
我没有手动安装runtime 7.0,它是使用命令自动安装的:
apt install dotnet-sdk-7.0.
我尝试将DOTNET_ROOT和PATH环境变量更改为sdk的位置:/usr/share/dotnet。期望它能够识别sdk的位置,但是没有成功。
安装了不同的sdk版本(6.0),仍然没有显示。
重新安装了runtime和sdk,还是没有出现。
我不太确定,但我的机器上似乎有一些程序与我正在安装的 SDK 发生冲突,我应该给予“packages.microsoft.com/”更高的优先级,以避免冲突。 stackoverflow 上另一位用户给出的这个答案对我有用:
我在 Linux Mint Linux Mint 21.3 Cinnamon 上也遇到了类似的问题:
问题: 使用 NET8 的脚本安装一切正常,但是当我安装 NET7 时,使用 dotnet --info 没有显示运行时。
问题根源: 这是安装之间冲突的问题。
解决方案: 我发现博客上的这篇文章非常有用,所有功劳都归功于 oxla.io 的作者 Dare Omotosho
Dare 最详细地描述了这个问题。 我必须简单做的事情:
找到 /home/xxxx -name 'dotnet' 2>/dev/null
此命令对于查找 dotnet 安装位置很有用。
sudo apt-get install -y dotnet-sdk-7.0 如此处所述 然后是 NET 8(相同的命令)
不要忘记更新 bashrc 上的 DOTNET_ROOT。
希望对你有帮助