Нужны SDK .NET 8, 9, 10 и 11 side-by-side (ставятся рядом, не конфликтуют — рантаймы независимы). .NET 11 на момент статьи — preview, поэтому идёт отдельным каналом.
Скрипт dotnet-install.ps1 ставит SDK в профиль пользователя, без прав администратора и без удаления существующих версий.
# качаем официальный установщик
Invoke-WebRequest https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1
# LTS/STS каналы
./dotnet-install.ps1 -Channel 8.0
./dotnet-install.ps1 -Channel 9.0
./dotnet-install.ps1 -Channel 10.0
# .NET 11 - preview-канал
./dotnet-install.ps1 -Channel 11.0 -Quality previewПо умолчанию всё ставится в %USERPROFILE%\.dotnet. Добавь эту папку в PATH (один раз):
$env:PATH = "$env:USERPROFILE\.dotnet;$env:PATH" # текущая сессия
setx PATH "$env:USERPROFILE\.dotnet;$env:PATH" # навсегда (новый терминал)Проверка:
dotnet --list-sdks
# должны быть строки 8.x, 9.x, 10.x, 11.xcurl -sSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 8.0
./dotnet-install.sh --channel 9.0
./dotnet-install.sh --channel 10.0
./dotnet-install.sh --channel 11.0 --quality preview
export PATH="$HOME/.dotnet:$PATH"
echo 'export PATH="$HOME/.dotnet:$PATH"' >> ~/.bashrc
dotnet --list-sdksСкачай на машине с сетью нужные SDK (.zip/.tar.gz) со страницы https://dotnet.microsoft.com/download/dotnet, распакуй в одну папку, добавь её в PATH. Бенчмаркам и дизасму никакого интернета не нужно.
- Мерить — на тихой машине: закрой всё лишнее, на ноутбуке воткни в розетку и отключи троттлинг. BenchmarkDotNet сам предупредит, если увидит нестабильность.
- Для дизасма версия сборки внутри канала неважна — там либо есть
cmp/jae, либо нет. Для бенчмарка запиши точные версии (dotnet --list-sdks), чтобы в статье указать, на чём гонял.