Ubuntu22.04 dotnet -info在更新后无法访问dotnet。重新安装dotnet和vscode没有帮助
发布于 2022-09-29 17:09:09
当.NET (核心)第一次发布时,它还没有在官方的Ubuntu中发布,所以人们添加了微软APT回购来安装它。
现在,这些包是Ubuntu的一部分,它们与Microsoft包冲突。此错误是混合包的结果。
所以你需要选择一个你要使用的,并确保它们不混合。就我个人而言,我决定坚持使用微软的软件包。
首先,删除所有现有的包以达到干净的状态:
sudo apt remove dotnet*
sudo apt remove aspnetcore*
sudo apt remove netstandard*
然后,在/etc/apt/preferences.d
中创建一个文件(我将其命名为99microsoft-dotnet.pref
,遵循这样的约定,即此类*.d
目录中的文件通常以2位数字作为前缀,以便按可预测的顺序排序和加载),内容如下:
Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001
然后,定期更新和安装:
sudo apt update
sudo apt install dotnet-sdk-6.0
如果您希望使用正式的Ubuntu包,请按照上面的方式执行,但不要创建/etc/apt/preferences.d
条目,只需删除Microsoft:
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
但是,请注意,Microsoft包含其他包,如PowerShell、Server命令行工具等,因此删除它可能是不可取的。
有关这一问题和各种解决方案的更多信息可在这里获得:
发布于 2022-09-17 18:38:56
发布于 2022-10-26 06:42:22
我也犯了同样的错误,我确实用微软的软件包安装了.Net。我认为问题在于,如果您有过关于Ubuntu和.Net包(通过Jammy或PMC的F.X)的旧的.Net或混合场景。顺便说一句,我解决了我的问题,坚持使用Ubuntu包,并运行了这个bash脚本:
# First, try to remove/uninstall older .Net, if any, then install .Net 6
echo "$(tput setaf 3)Installing .Net 6$(tput sgr0)"
sudo apt remove 'dotnet*'
sudo apt remove 'aspnetcore*'
sudo apt remove 'netstandard*'
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo rm /etc/apt/sources.list.d/microsoft-prod.list.save
sudo apt update
sudo apt install dotnet6
https://stackoverflow.com/questions/73753672
复制相似问题