dotnetup 将 .NET 环境管理集中到用户目录
微软 .NET 团队于 2026 年 10 月 15 日宣布,.NET 工具链管理器 dotnetup 进入公开预览。它把 SDK 和运行时的安装、切换、更新与清理统一到同一套命令中,并将文件保存在用户自有目录,避免依赖管理员权限。
- 提供跨平台一致的操作方式,减少不同安装机制带来的差异。
- 支持并行安装多个 SDK、服务版本、预览通道和每日构建。
- 可跟踪主版本、功能带或精确版本;精确版本不会在更新时自动前进。
- 兼容现有 global.json,让项目固定的 SDK 版本继续生效。
安装并完成初始化
公告为 Zsh、Bash 和 PowerShell 提供了引导脚本。以 macOS 或 Linux 为例,可根据所用终端选择对应命令:
# macOS / Zsh
curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | zsh
# Linux / Bash
curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | bash
# PowerShell
irm https://aka.ms/dotnetup/get-dotnetup.ps1 | iex
随后执行初始化和查看命令:
dotnetup init
dotnetup list
初始化会配置 shell 环境,使 dotnet 命令在终端会话中可用,同时获取最新的稳定版 .NET SDK。列表命令用于查看当前由 dotnetup 管理的 SDK 与运行时。
更新与版本清理
dotnetup update 会重新解析已跟踪的 SDK 和运行时通道,并安装匹配的最新版本。例如,10.0 会跟踪 .NET 10 范围内的更新,latest 则会跟随最新稳定 SDK,包括新的主版本;明确请求的 10.0.3 仍保持固定。
dotnetup update
dotnetup runtime install aspnetcore@10.0
更新成功后,dotnetup 会清理已无需求引用的组件,但保留其他通道或精确版本仍然需要的安装。需要移除某项要求时,可使用对应的 sdk uninstall 或 runtime uninstall 命令。
预览版与每日构建可并行使用
需要提前验证修复或新运行时能力时,可以安装预览 SDK、每日运行时或完整的每日 SDK,而不影响稳定环境:
dotnetup sdk install preview
dotnetup runtime install daily
dotnetup sdk install daily
dotnetup 本身也可单独更新:
dotnetup self update
适用场景与当前限制
- CI 场景:由于不需要 root 权限,并支持非交互执行,dotnetup 适合容器及临时 CI 工作节点按需安装指定 SDK 或每日运行时。
- 替代脚本式安装:官方称,相比 dotnet-install 脚本,dotnetup 增加已安装 SDK 和运行时的管理、签名及校验和验证、批量安装能力和统一 CLI;“安装更快”属于官方表述,资料未提供对比数据。
- 应用不会自动获得运行时补丁:更新本机运行时不会修补已经发布的自包含应用,使用更新后的运行时需要重新发布和部署应用。
- Windows 系统级管理尚未完成:本轮公开预览重点是 macOS 和 Linux 的用户级使用,Windows 管理员安装支持仍在规划中。
后续规划
路线图还包括支持 Windows 管理员安装程序,以及进一步接入 GitHub Actions 和 Azure DevOps,逐步替代依赖 dotnet-install 脚本的部分流程。官方计划继续改进使用体验,并完善面向自动化助手的工具使用能力。
资料来源:Introducing dotnetup: A toolchain manager for .NET(2026-10-15)。
一起聊聊
留下你的想法,评论审核通过后展示。