ハマったこと
- WSL2上のUbuntu 22.04では通常のリポジトリに.NET SDK 7.0が含まれないためMicrosoftパッケージリポジトリからインストールする必要がある
- Microsoftパッケージリポジトリからインストールしたがdotnet --infoコマンドを実行してもSDKがインストールされていないと表示される
- 実はディストリビューションのリポジトリからのインストールと重複していたため、Microsoftパッケージリポジトリからのインストール優先度を下げて再インストールした
.NET SDKs installed:
No SDKs were found.
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
インストール手順
Microsoftパッケージリポジトリの追加
# 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
.NET SDK 7.0 のインストール
# Install SDK 7.0
sudo apt install dotnet-sdk-7.0
# Display .NET command information
dotnet --info
ここで以下のように「No SDKs were found.」と表示されていたら、正しくインストールされていないので
.NET SDKs installed:
No SDKs were found.
リポジトリ優先度を設定して再インストール
# Uninstall .NET libraries
sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
# Add priority
sudo tee /etc/apt/preferences << EOF > /dev/null
Package: dotnet* aspnet* netstandard*
Pin: origin "packages.microsoft.com"
Pin-Priority: -10
EOF
# Update packages
sudo apt update
# Install SDK 7.0
sudo apt install dotnet-sdk-7.0
インストール結果
成功したら以下のように.NET SDKs installedに7.0が表示される
.NET SDKs installed:
7.0.110 [/usr/lib/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
参考