dotnet-install
SKILL.md
.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 buildordotnet 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 /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:
Weekly Installs
72
Repository
rysweet/amplihackGitHub Stars
32
First Seen
Jan 24, 2026
Security Audits
Installed on
opencode65
claude-code63
codex61
cursor59
gemini-cli58
github-copilot57