直到最近我才在我的Linux机器上安装了.NET 7.x。我工作得很好,构建和运行.NET(特别是C#)项目,安装dotnet工具(Husky.NET,versionize等)。
我决定更新到.NET 8.0,看看所有的模糊是关于什么的,但不知何故,我的安装并没有完全工作(也许是因为我的发行版不支持它,.NET 8仍然是热的从烤箱)。之后,我执行了一系列不稳定的操作,试图保持我以前的设置。
我做了一些事情来解决这个问题:
- 卸载.NET 8
- 使用
dotnet-install.sh
脚本手动安装.NET 8 - 再次卸载.NET 8,然后卸载.NET 7.0
- 从安装dotnet SDK文件的任何位置手动删除内容(
~/.dotnet
、/usr/lib/dotnet/
、/usr/share/dotnet
、/usr/bin/dotnet
符号链接) - 使用Microsoft包存储库重新安装.NET 7.0(我想我甚至还尝试了Ubuntu的repo包)
这里有一些故障排除命令,用于测量配置的当前状态。
$ whereis dotnet
dotnet: /usr/bin/dotnet /usr/lib/dotnet /etc/dotnet /usr/share/dotnet /usr/share/man/man1/dotnet.1.gz
$ which dotnet
/usr/bin/dotnet
$ dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
奇怪的部分来了
无法获取.NET版本:
$ 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信息:
$ dotnet --info
Host:
Version: 7.0.14
Architecture: x64
Commit: 808851b07a
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.14 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.14 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
型
没有列出SDK:
$ dotnet --list-sdks
型
我看到列出了一些运行时:
dotnet --list-runtimes
Microsoft.AspNetCore.App 7.0.14 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.14 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
型
构建解决方案/项目失败,并显示与之前相同的消息:
$ dotnet build
The command could not be loaded, possibly because:
* You intended to execute a .NET application:
The application 'build' 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安装文件的任何特定细节可能会对这个问题有所帮助?
- 任何其他可能有用的故障排除操作?
其他详细信息:
- 操作系统:OS 22.04 LTS x86_64
1条答案
按热度按时间h9a6wy2h1#
在我的例子中,旧的“关机再开机”的方法很有效。我将详细解释我采取的步骤。
关闭部分:
卸载/删除使用Microsoft/Ubuntu软件包安装的.NET:
sudo apt-get remove aspnetcore-runtime-7.0 --purge
的然后,完全清除Linux上通常安装.NET的位置:
/usr/share/dotnet
个/usr/lib/dotnet
(在/usr/bin/dotnet上有一个与此相关的符号链接)~/.dotnet
(我以前尝试的旧文件夹)“开启”部分:
我用dotnet-install脚本安装了.NET 7.0和.NET 8.0,用于手动安装(这次没有Microsoft或Ubuntu软件包)。
我特意将安装位置设置为
~/.dotnet
,以免在重新安装时丢失:字符串
下面是安装完成后
~/.dotnet
文件夹的概要:型
我不需要设置
$DOTNET_ROOT
环境变量。如果没有设置$DOTNET_ROOT
,dotnet
工具可能会首先搜索本地文件夹。最后,像
dotnet --version
、dotnet --list-sdks
、dotnet --info
和dotnet buil
这样的命令再次正常工作。