Microsoft Previews dotnetup: Toolchain Manager for .NET SDKs and Runtimes
Microsoft has released a public preview of dotnetup, a cross-platform toolchain manager that installs and updates .NET SDKs and runtimes in the user’s own directory without admin rights. It tracks channels such as latest, lts, preview, and daily, reads global.json, and removes unused installs. Commands may still change before general availability. By Almir Vuk
Microsoft has previewed dotnetup, a cross-platform toolchain manager designed to handle .NET SDKs and runtimes. According to the .NET Blog, the tool manages the installation, updates, and removal of .NET SDKs and runtimes inside a user's account, rather than the system-managed directory. The announcement by Chet Husk, a program manager for the .NET SDK, followed a similar approach to tools like rustup and nvm.
The tool works by following intent rather than versions, where users specify channels such as latest, lts, preview, daily, major, minor, or feature band. Dotnetup then resolves the specified channel to the appropriate release, while keeping the pinned exact versions during updates. All files associated with the tool live under the user's local data directory on Windows, macOS, and Linux, and it never writes to sensitive directories like Program Files.
The installation process utilizes a bootstrap script fetched from aka.ms using curl or irm, and the binary is placed in the user's local data directory after checksum validation. Dotnetup offers three access modes: none, shell, and everywhere. The 'everywhere' mode changes the system PATH and requires elevation, which can cause issues with projects needing a specific SDK version installed by the tool. To mitigate this, the tool offers to migrate existing machine-wide installs.
Monthly servicing becomes a single dotnetup update, which re-resolves tracked channels and installs the newest matching versions. Individual runtimes, such as the ASP.NET Core runtime and Windows Desktop runtime, can also be targeted. After an update, dotnetup removes any components no longer required by any tracked requirement. The tool supports SDK, .NET runtime, ASP.NET Core runtime, and Windows Desktop runtime, with side-by-side installations of preview and daily builds.
dotnetup self update refreshes the tool itself. Compared to dotnet-install scripts, dotnetup offers tracking of installed components, signature and checksum validation, faster multi-version installs, and a unified CLI surface across platforms. The roadmap includes admin-level installs on Windows, replacing script-based parts of GitHub Actions and Azure DevOps tasks, and agent skills for AI assistants to use the tool by default.
Feedback from the developer community has been mixed. While some users appreciate the simpler Linux setup, others have criticized the curl-to-shell bootstrap, requested alternative package managers like winget, apt, or Homebrew, and noted that Visual Studio does not see dotnetup installations. They also called for the management of additional CLI tools, such as dotnet-ef.
Microsoft has acknowledged these concerns and stated that packages will be planned after user validation. For more information, users can refer to the full documentation on Microsoft Learn and provide feedback through the dotnet/sdk GitHub discussions.
Written by urgent.news from InfoQ's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.