.NET Installation Skill
Automated .NET SDK and runtime installation with intelligent platform detection, version management, and troubleshooting guidance.
Quick Start
Check Current Installation
dotnet --version
Output: 8.0.100
dotnet --list-sdks
Output: 8.0.100 [/usr/local/share/dotnet/sdk]
dotnet --list-runtimes
Output: Microsoft.NETCore.App 8.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Platform Detection
The skill automatically detects your operating system and recommends the best installation method:
Detected: macOS 14.2 (arm64)
Recommended: Official installer package (.pkg)
Alternative: Homebrew (brew install dotnet)
Quick Install (Recommended Methods)
Windows (WinGet):
Install .NET 8 SDK (LTS)
winget install Microsoft.DotNet.SDK.8
Verify installation
dotnet --version
Output: 8.0.100
macOS (Official Installer):
Download and install from:
https://dotnet.microsoft.com/download/dotnet/8.0
Or use Homebrew:
brew install dotnet
Verify installation
dotnet --version
Output: 8.0.100
Linux (Ubuntu/Debian):
Add Microsoft package repository
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Install .NET 8 SDK
sudo apt-get update sudo apt-get install -y dotnet-sdk-8.0
Verify installation
dotnet --version
Output: 8.0.100
SDK vs Runtime Decision
Install SDK when:
-
Building applications
-
Developing locally
-
Running dotnet build or dotnet run
-
Need the complete toolchain
Install Runtime only when:
-
Deploying production apps
-
Running pre-compiled applications
-
Minimizing installation size
-
Production servers
Install SDK (includes runtime)
sudo apt-get install dotnet-sdk-8.0
Install runtime only (smaller)
sudo apt-get install aspnetcore-runtime-8.0 # For ASP.NET Core apps sudo apt-get install dotnet-runtime-8.0 # For console apps
Practical Guide
Windows Installation Methods
Method 1: WinGet (Recommended)
List available .NET versions
winget search Microsoft.DotNet.SDK
Install .NET 8 SDK (LTS)
winget install Microsoft.DotNet.SDK.8
Install specific version
winget install Microsoft.DotNet.SDK.8 --version 8.0.100
Update existing installation
winget upgrade Microsoft.DotNet.SDK.8
Method 2: Visual Studio Installer
Visual Studio 2022 detected at: C:\Program Files\Visual Studio\2022\Community
.NET 8 SDK available via: Modify Installation → .NET desktop development
Installation steps:
-
Launch Visual Studio Installer
-
Click "Modify" on your installation
-
Select ".NET desktop development" workload
-
Apply changes
Method 3: Standalone Installer
Download: https://dotnet.microsoft.com/download/dotnet/8.0
File: dotnet-sdk-8.0.100-win-x64.exe
SHA512: [verification hash]
Run installer (GUI)
.\dotnet-sdk-8.0.100-win-x64.exe
Or silent install
.\dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart
Method 4: PowerShell Script
Download install script
Invoke-WebRequest -Uri https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1
Install latest .NET 8 SDK
.\dotnet-install.ps1 -Channel 8.0
Install to custom location
.\dotnet-install.ps1 -Channel 8.0 -InstallDir "C:\Program Files\dotnet"
Install runtime only
.\dotnet-install.ps1 -Channel 8.0 -Runtime dotnet
macOS Installation Methods
Method 1: Official Installer Package (Recommended)
Detected: Apple Silicon (arm64)
Recommended: dotnet-sdk-8.0.100-osx-arm64.pkg
Download from: https://dotnet.microsoft.com/download/dotnet/8.0
Double-click .pkg file to install
Verify installation location
which dotnet
Output: /usr/local/share/dotnet/dotnet
Method 2: Homebrew
Install Homebrew (if needed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install .NET SDK
brew install dotnet
Install specific version (if available)
brew install dotnet@8
Update existing installation
brew upgrade dotnet
Method 3: Install Script
Download install script
curl -sSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh chmod +x dotnet-install.sh
Install latest .NET 8 SDK
./dotnet-install.sh --channel 8.0
Install to custom location
./dotnet-install.sh --channel 8.0 --install-dir ~/.dotnet
Add to PATH
echo 'export PATH="$HOME/.dotnet:$PATH"' >> ~/.zshrc source ~/.zshrc
Linux Installation Methods
Ubuntu/Debian
Ubuntu 22.04 LTS
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Ubuntu 20.04 LTS
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Install SDK
sudo apt-get update sudo apt-get install -y dotnet-sdk-8.0
Install runtime only
sudo apt-get install -y aspnetcore-runtime-8.0
Fedora/RHEL/CentOS
Fedora 39
sudo dnf install dotnet-sdk-8.0
RHEL/CentOS (register Microsoft repository first)
sudo dnf install https://packages.microsoft.com/config/rhel/9/packages-microsoft-prod.rpm sudo dnf install dotnet-sdk-8.0
Arch Linux
Install from official repositories
sudo pacman -S dotnet-sdk
Install runtime only
sudo pacman -S aspnet-runtime
Alpine Linux
Add Microsoft repository
wget https://dot.net/v1/dotnet-install.sh chmod +x dotnet-install.sh
Install .NET 8
./dotnet-install.sh --channel 8.0 --install-dir /usr/share/dotnet
Add to PATH
export PATH="$PATH:/usr/share/dotnet"
Version Management with global.json
Control which .NET SDK version your project uses:
Create global.json for .NET 8
dotnet new globaljson --sdk-version 8.0.100
View current global.json
cat global.json
{ "sdk": { "version": "8.0.100", "rollForward": "latestPatch" } }
Roll-forward policies:
-
latestPatch
-
Use latest patch (8.0.x)
-
latestFeature
-
Use latest feature band (8.x.x)
-
latestMinor
-
Use latest minor (x.x.x)
-
disable
-
Exact version required
Deep Dive
SDK vs Runtime Architecture
SDK Components:
.NET SDK 8.0.100 ├── Runtime (8.0.0) ├── Compiler (Roslyn) ├── CLI Tools (dotnet build, run, publish) ├── Templates (dotnet new) └── MSBuild
Runtime-Only Components:
.NET Runtime 8.0.0 ├── CoreCLR (execution engine) ├── Base Class Libraries └── Framework assemblies
Size comparison:
-
SDK: ~200-400 MB
-
Runtime: ~50-150 MB
Installing Multiple Versions Side-by-Side
.NET supports multiple versions installed simultaneously:
List all installed SDKs
dotnet --list-sdks
Output:
6.0.420 [/usr/local/share/dotnet/sdk]
7.0.410 [/usr/local/share/dotnet/sdk]
8.0.100 [/usr/local/share/dotnet/sdk]
Install additional versions
sudo apt-get install dotnet-sdk-7.0 # Adds to existing installation
Project selects version via global.json
cd my-project cat global.json
{ "sdk": { "version": "7.0.410" } }
dotnet --version
Output: 7.0.410 (selected by global.json)
Offline Installation
For air-gapped environments or restricted networks:
Windows
Download offline installer
https://dotnet.microsoft.com/download/dotnet/8.0
Select: x64 | Binaries
Extract to destination
Expand-Archive dotnet-sdk-8.0.100-win-x64.zip -DestinationPath "C:\Program Files\dotnet"
Add to PATH
$env:PATH = "C:\Program Files\dotnet;$env:PATH" [Environment]::SetEnvironmentVariable("PATH", $env:PATH, "Machine")
Linux
Download tarball
wget https://download.visualstudio.microsoft.com/download/pr/[hash]/dotnet-sdk-8.0.100-linux-x64.tar.gz
Extract to system location
sudo mkdir -p /usr/local/share/dotnet sudo tar -xzf dotnet-sdk-8.0.100-linux-x64.tar.gz -C /usr/local/share/dotnet
Create symlink
sudo ln -s /usr/local/share/dotnet/dotnet /usr/local/bin/dotnet
Docker Installation
Use official .NET SDK image
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /app
Copy and restore project
COPY *.csproj ./ RUN dotnet restore
Build application
COPY . ./ RUN dotnet publish -c Release -o out
Runtime image (smaller)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app COPY --from=build /app/out . ENTRYPOINT ["dotnet", "MyApp.dll"]
Common Troubleshooting
PATH Not Updated
Verify dotnet location
which dotnet # macOS/Linux where.exe dotnet # Windows
If not found, add to PATH manually:
macOS/Linux (bash)
echo 'export PATH="$PATH:/usr/local/share/dotnet"' >> ~/.bashrc source ~/.bashrc
macOS (zsh)
echo 'export PATH="$PATH:/usr/local/share/dotnet"' >> ~/.zshrc source ~/.zshrc
Windows (PowerShell)
$env:PATH = "$env:PATH;C:\Program Files\dotnet"
SDK Not Found After Installation
Check installation location
dotnet --info
Look for "Base Path:" in output
Register installation manually (Linux)
sudo ln -s /usr/local/share/dotnet/dotnet /usr/bin/dotnet
Clear NuGet cache if corrupted
dotnet nuget locals all --clear
Version Conflicts
Remove specific SDK version
sudo apt-get remove dotnet-sdk-7.0 # Linux winget uninstall Microsoft.DotNet.SDK.7 # Windows
Force project to use available SDK
Edit global.json:
{ "sdk": { "version": "8.0.100", "rollForward": "latestMinor" # More permissive } }
References
Comprehensive Details: See reference.md for:
-
Complete platform-specific installation commands
-
Advanced version management strategies
-
Enterprise deployment patterns
-
CI/CD integration examples
-
Performance optimization tips
Official Documentation:
-
.NET Installation Guide
-
Download .NET
-
SDK vs Runtime
-
global.json Reference