微软放出了 dotnetup 的公开预览版。这是一个跨平台的工具链管理器,干的事情很直接:把 .NET SDK 和运行时装进用户自己的账户目录,而不是塞进系统统一管理的路径里。
![]()
10 月 15 日,.NET SDK 项目经理 Chet Husk 在 .NET 博客上公布了这一工具。它的路子照着 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。
三种接入模式,代价各不同
安装靠一段从 aka.ms 取回的引导脚本,用 curl 或 irm 拉下来。脚本校验 SHA-512 之后把二进制放进 ~/.dotnetup,接着 dotnetup init 装上最新的稳定版 SDK 并配置 shell。
文档列了三种访问模式:
- none:通过 dotnetup dotnet 运行 .NET,不碰环境变量;
- shell:改写 shell 配置文件;
- everywhere:仅限 Windows 的默认模式,改系统 PATH,需要提权。
文档同时警告,everywhere 模式的优先级高于机器级副本,包括 Visual Studio 装的那一份。结果就是,需要某个 dotnetup 没装过的 SDK 的项目会构建失败。为此,安装流程会主动提出迁移已有的机器级安装。
月度维护被压缩成一条 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 脚本,博客给出的优势包括:跟踪已安装组件、签名与校验和验证、更快的多版本安装、以及每个平台上统一的命令行界面。路线图上写着 Windows 管理员级安装、替换 GitHub Actions 和 Azure DevOps 任务里基于脚本的部分,还有让 AI 助手默认去调用这个工具的 agent skills。
社区的第一反应是:为什么不用 mise
在 r/dotnet 上,一位用了几个月的开发者称赞 Linux 上的配置更简单。但最高赞评论问的是:既然已经在用 mise,为什么还要选 dotnetup。
其他批评集中在几处:curl 管道到 shell 的引导方式、希望有 winget、apt 或 Homebrew 包、指出 Visual Studio 看不到 dotnetup 装的版本、以及希望 dotnet-ef 这类 CLI 工具也能被一并管理。
Husk 在博客下的回复是:等用户验证之后,打包是计划中的事。
完整的命令参考和遥测说明在 Microsoft Learn 上,反馈走 dotnet/sdk GitHub 讨论区的 dotnetup 分类。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.