产品派
返回

微软发布dotnetup预览版管理多版本.NET工具链

工具InfoQ 中文站2026/11/2 22:02:40
AI 导读

微软已发布dotnetup公开预览版,这是一款面向Windows、macOS和Linux的.NET工具链管理器。它借鉴了rustup和nvm的设计,允许用户在账户范围内安装、更新和移除.NET SDK及运行时,避免改写系统管理目录。不过,预览阶段的命令和行为仍可能调整,不建议直接用于生产机器。

dotnetup关注的是开发者声明的安装意图,而不只是固定版本号。用户可以选择latest、lts、preview、daily等通道,也能指定主版本、次版本或功能带,例如10、10.0和10.0.1xx,工具会解析到对应发行版;一旦指定精确版本,后续更新不会改变它。多个需求还可以复用同一安装实例,工具会读取当前目录及其父目录中最近的global.json,以帮助团队维持确定性的构建结果。

在各平台上,受管理文件会放入用户本地数据目录,不会写入Windows的Program Files\dotnet或Linux的/usr/share/dotnet。安装需要通过curl或irm从aka.ms获取引导脚本,脚本会校验SHA-512后把可执行文件放入~/.dotnetup。运行dotnetup init后,工具会安装最新稳定版SDK并配置Shell环境,提供none、shell和everywhere三种接入模式。none不改变环境变量,shell会修改Shell配置文件,everywhere则是Windows默认模式,会修改系统PATH并需要提升权限。

everywhere的优先级高于全机安装版本,包括Visual Studio所带版本。如果项目所需SDK尚未由dotnetup安装,构建可能直接失败;安装流程据称会提供迁移既有全局安装的选项。工具支持SDK、.NET运行时、ASP.NET Core运行时和Windows Desktop运行时,用户可执行dotnetup update重新解析所有跟踪通道并安装最新匹配版本,也能用dotnetup runtime install aspnetcore@10.0单独管理运行时。

更新后,未被任何需求继续使用的组件会被自动清理,sdk uninstall和runtime uninstall也会触发同样的回收机制。preview和daily构建可以并行安装,例如dotnetup sdk install preview或dotnetup runtime install daily,但每日构建不带代码签名;dotnetup self update用于升级管理器本身。相较dotnet-install脚本,dotnetup还具备组件跟踪、签名与校验和验证、多版本快速安装及跨平台统一命令行等特性。后续路线图包括Windows管理员级安装、替代GitHub Actions和Azure DevOps中的脚本任务,以及让AI助手默认调用该工具。

社区反馈一方面肯定了它简化Linux配置的效果,另一方面也质疑已有mise等工具后使用dotnetup的必要性。部分开发者不认可通过curl下载并直接交给Shell执行的安装方式,建议提供winget、apt和Homebrew包;他们还指出Visual Studio目前无法识别dotnetup安装的版本,并希望工具管理dotnet-ef等命令行组件。项目负责人表示,完成用户验证后计划提供软件包。完整命令参考和遥测说明可在Microsoft Learn查看,问题与建议则可提交到dotnet/sdk GitHub Discussions的dotnetup分类。

.NET开发工具版本管理跨平台

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文