微软推出 dotnetup:多版本管理更省心,安装方式却让开发者皱眉
作者:Almir Vuk
dotnetup 是微软推出的跨平台 .NET 工具链管理器,支持用户级安装、更新与卸载 SDK/运行时,避免系统目录污染。其通道机制(如 lts、preview)实现语义化版本解析,且尊重 global.json 以保障构建确定性。
支持通道式版本选择;按需复用同一安装实例;本地数据目录隔离,不侵入系统路径。
适合 .NET 开发者、CI/CD 工程师、多版本环境运维人员阅读。
微软发布了 dotnetup 公开预览版 。这款跨平台工具链管理器可以在用户账户内安装、更新和移除 .NET SDK 与运行时,而不是将它们安装到由系统管理的目录中。据 .NET Blog 报道,.NET SDK 项目经理 Chet Husk 于 10 月 15 日宣布了这款工具,其设计借鉴了 rustup 和 nvm。
根据 文档 ,预览版之间的命令和行为可能发生变化,生产环境机器仍应继续使用安装程序、包管理器或 Visual Studio。
公告称,这项设计跟踪的是安装意图,而非版本号。开发者可以指定一个 通道 ,例如 latest 、 lts 、 preview 、 daily ,也可以指定 10 这样的主版本、 10.0 这样的次版本,或 10.0.1xx 这样的功能带,dotnetup 会将其解析为相应的发布版本。文章指出,指定的精确版本在更新时会保持不变。
多个需求可以共用同一个受管理的安装版本。该工具还会读取距离当前目录最近的 global.json ,使团队构建保持确定性。此外,文档指出,在 Windows、macOS 和 Linux 上,文件会存放在用户的 本地数据目录 下;dotnetup 不会写入 Program Files\dotnet 或 /usr/share/dotnet 。
安装时,通过 curl 或 irm 从 aka.ms 获取 引导脚本 。文档称,脚本会在校验 SHA-512 校验和后,将可执行文件放入 ~/.dotnetup ;随后, dotnetup init 会安装最新的稳定版 SDK 并配置 shell。文档列出了 三种接入模式 : none 模式通过 dotnetup dotnet 运行 .NET,不修改环境; shell 模式修改 shell 配置文件; everywhere 模式是仅适用于 Windows 的默认模式,会修改系统 PATH,因此需要提升权限。
文档还警告说, everywhere 模式 的优先级高于全机器安装的版本,包括 Visual Studio 安装的版本。因此,如果某个项目需要的 SDK 尚未通过 dotnetup 安装,构建就会失败。为避免这种情况,据称安装流程会提供迁移现有全机器安装版本的选项。
据报道,每月的维护更新可以通过一条 dotnetup update 命令完成:它会重新解析所有已跟踪的通道,并安装各通道匹配的最新版本。也可以针对单个运行时执行操作,例如 dotnetup runtime install aspnetcore@10.0 。文档列出的受支持组件包括 SDK、.NET 运行时、 ASP.NET Core 运行时和 Windows Desktop 运行时。文章称,更新后,dotnetup 会移除不再被任何需求使用的组件; sdk uninstall 和 runtime uninstall 也会触发相同的清理操作。
此外, 预览版和每日构建版 可以通过 dotnetup sdk install preview 或 dotnetup runtime install daily 并行安装,不过文档指出,每日构建版没有代码签名。 dotnetup self update 用于更新工具本身。与 dotnet-install 脚本 相比,文章称 dotnetup 能跟踪已安装的组件、验证签名和校验和、更快地安装多个版本,并在所有平台上提供统一的命令行界面。公布的路线图包括 Windows 上的管理员级安装、替换 GitHub Actions 和 Azure DevOps 任务中基于脚本的部分,以及提供智能体技能,让 AI 助手默认使用这款工具。
与此同时,在 r/dotnet 上,一位已使用该工具数月的开发者称赞它简化了 Linux 上的配置,但获赞最多的评论提出疑问:既然已有不少人使用 mise,为什么还要选择 dotnetup?
其他人批评了通过 curl 获取脚本并直接交给 shell 执行的引导方式,要求提供 winget、apt 或 Homebrew 软件包,指出 Visual Studio 无法识别 dotnetup 安装的版本,并希望它也能管理 dotnet-ef 等命令行工具。Husk 在 博客评论区 回复称,计划在完成用户验证后提供软件包。
感兴趣的读者可以在 Microsoft Learn 上查看完整文档,包括命令参考和遥测详情;反馈则可提交至 dotnet/sdk GitHub Discussions 的 dotnetup 分类。
原文链接:
https://www.infoq.com/news/2026/10/dotnetup-preview/
促进软件开发及相关领域知识与创新的传播
关于我们 我要投稿 合作伙伴 加入我们 关注我们
联系我们 内容投稿:editors@geekbang.com 业务合作:hezuo@geekbang.com 反馈投诉:feedback@geekbang.com 加入我们:zhaopin@geekbang.com 联系电话:010-64738142 地址:北京市朝阳区望京北路9号2幢7层A701
InfoQ 近期会议 上海 · QCon 全球软件开发大会 2026.10.22-24 北京 · AICon 全球人工智能开发与应用大会 2026.12.18-19
全球 InfoQ InfoQ En InfoQ Jp InfoQ Fr InfoQ Br
Copyright © 2026, Geekbang Technology Ltd. All rights reserved. 极客邦控股(北京)有限公司 | 京 ICP 备 16027448 号 - 5 京公网安备 11010502039052号 | 产品资质
本文内容由 ai007 从公开渠道聚合,版权归原作者所有。若原文已删除或变更, 以原文站为准;本站存档仅为便于查阅而保留。