Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Облако

Microsoft представила dotnetup — менеджер SDK и рантаймов .NET по образцу rustup и nvm

22 октября 2026·4 мин чтения
dotnetupBackend-разработка
Менеджер версий dotnetup для SDK и рантаймов .NET

15 октября Microsoft открыла публичное превью dotnetup — кроссплатформенного менеджера, который ставит, обновляет и удаляет SDK и рантаймы .NET в профиле пользователя, без прав администратора. Инструмент повторяет модель rustup и nvm: несколько версий рядом, привязка к global.json, обновление одной командой. Для продакшен-машин Microsoft пока советует прежние установщики.

Для команд, которые ведут backend-разработку на ASP.NET Core, это ответ на старую боль: на одной машине часто живут проекты на .NET 8, 10 и превью .NET 11, а ставить и чистить версии приходилось вручную или скриптами. Новинка особенно полезна тем, кто готовит переход на .NET 11 — о его последнем релиз-кандидате мы писали в новости про .NET 11 RC2.

Второй адресат — инженеры, которые отвечают за окружения и пайплайны. Если у вас настроены DevOps-процессы и CI/CD, dotnetup пока не замена привычным образам сборки, но интеграцию с GitHub Actions и Azure DevOps Microsoft уже включила в планы.

Что такое dotnetup и откуда он взялся

Анонс в блоге .NET опубликовал Чет Хаск (Chet Husk), программный менеджер .NET SDK. По его словам, dotnetup вдохновлён менеджерами тулчейнов из других экосистем — rustup для Rust и nvm для Node.js. Документация Microsoft Learn описывает его как «кроссплатформенный менеджер тулчейна для пользовательских установок .NET»: он не пишет в системный каталог .NET и запоминает, какие версии вы запросили, чтобы потом обновить или удалить связанные файлы.

Устанавливается сам dotnetup bootstrap-скриптом: для bash и zsh — через curl, для PowerShell — через irm. По данным InfoQ, скрипт проверяет контрольную сумму SHA-512 перед тем, как положить бинарник в домашний каталог пользователя.

Какие задачи dotnetup решает для команды

  • Несколько версий рядом. SDK и рантаймы (.NET, ASP.NET Core, Windows Desktop) ставятся бок о бок в одну управляемую установку — без конфликта с системным .NET.
  • Каналы вместо номеров. Можно отслеживать канал — latest, lts, preview, daily, мажорную или минорную версию — и получать сервисные обновления командой dotnetup update. Точные версии при этом не трогаются.
  • Привязка к репозиторию. dotnetup умеет поставить SDK, который требует ближайший файл global.json, — сборка у всех разработчиков идёт на одной версии.
  • Уборка. Неиспользуемые и вышедшие из поддержки установки удаляются автоматически после обновления.
  • Аккуратная работа с PATH. Можно прописать dotnet в профиль шелла (dotnetup env set shell) или вообще не трогать PATH и вызывать управляемую версию через dotnetup dotnet <команда>.

Чем dotnetup отличается от скриптов dotnet-install

Скрипты dotnet-install давно служат «ручным» способом поставить .NET без установщика, особенно в CI. Но они только скачивают и распаковывают файлы: что и куда установлено, они не помнят. По сравнению с ними Microsoft называет у dotnetup четыре преимущества: управление жизненным циклом установок, проверку подписей, более быструю установку сразу нескольких компонентов и единый набор команд на всех платформах.

Базовый сценарий укладывается в пару команд: dotnetup init запускает интерактивную настройку и ставит последний стабильный SDK, dotnetup list показывает отслеживаемые каналы и установленные версии, dotnetup sdk install и dotnetup runtime install добавляют нужные компоненты, dotnetup self update обновляет сам инструмент.

Ограничения превью: где dotnetup пока не стоит применять

Статус — public preview: команды, параметры и поведение могут меняться между выпусками, а жизненный цикл поддержки стабильной версии не утверждён. Microsoft прямо пишет, что продакшен-машинам стоит и дальше использовать установщики, пакетные менеджеры или Visual Studio. В дорожной карте — управление системными установками в Windows, интеграция с CI/CD (GitHub Actions, Azure DevOps) и поддержка workloads. Обратную связь команда собирает в разделе обсуждений репозитория dotnet/sdk на GitHub.

Как попробовать dotnetup без риска

  1. Начните с рабочих станций разработчиков, а не с серверов и агентов сборки: превью для этого и предназначено.
  2. Проверьте global.json в репозиториях — dotnetup будет ставить SDK по нему, поэтому версия в файле должна быть актуальной.
  3. Используйте отдельный канал preview для проб .NET 11, не смешивая его с LTS-версией, на которой работает продакшен.
  4. Решите вопрос PATH заранее: если на машине уже есть системный .NET, режим без изменения PATH (env set none) помогает избежать путаницы версий.
  5. Не переносите CI на dotnetup, пока не выйдет официальная интеграция с пайплайнами, — образы сборки и скрипты dotnet-install там пока надёжнее.

Часто задаваемые вопросы

Нужны ли права администратора для dotnetup? Нет: инструмент ставит .NET в каталог пользователя и не пишет в системную установку.

Заменяет ли dotnetup установщик .NET и Visual Studio? Пока нет. Это превью для разработчиков; для продакшен-машин Microsoft рекомендует прежние способы установки.

Можно ли держать .NET 8, .NET 10 и превью .NET 11 одновременно? Да, side-by-side установка нескольких SDK и рантаймов — основной сценарий dotnetup, включая preview- и daily-сборки.

Где оставить отзыв или сообщить об ошибке? В разделе обсуждений dotnetup репозитория dotnet/sdk на GitHub — его указывает анонс Microsoft.

Источники

Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.

Зоопарк версий .NET на машинах и в CI? Наведём порядок

Зафиксируем версии SDK через global.json, соберём воспроизводимые образы сборки и настроим пайплайны так, чтобы переход на .NET 10 LTS или .NET 11 не ломал релизы.

Настроить DevOps и CI/CD