ロードマップ (Windows システム レベルのインストール サポート、CI/CD ネイティブ統合、さらには AI プログラミング アシスタントのエージェント スキル) から判断すると、Microsoft は、これが最終的には .NET をインストールする唯一の公式に推奨される方法になることを期待しています。これが可能であれば、将来的には新入社員の入社書類からページ全体を削除することができます。

dotnetup パブリック プレビューの概要: 公式 .NET バージョン マネージャー
Rust と .NET を同時に作成したことがある場合は、おそらく次のような心理的なギャップを経験したことがあるでしょう。
錆びそこに、1つ rustup コマンド、ツール チェーンのインストール、更新の管理、および複数のバージョンの共存がすべて 1 つのパッケージで行われます。 .NET 側はどうなるのでしょうか? Windows ではインストーラーを使用し、macOS ではインストーラーを使用します。 brew または、Linux に関する公式パッケージ、誰もが独自の意見を持っています apt、タールボール、dotnet-install.sh 3つのルートが共存しています。インストール後、システムディレクトリにファイルが散在します。削除したい場合は、ファイルを確認する必要があります。新しい仕事の初日は、「SDKを正しくインストールする」だけで半日かかることもあります。
この状況はついに解決されました。 Microsoft は数日前、.NET 公式ブログで次のように発表しました。dotnetup がパブリック プレビューに入ります——公式の.NETツールチェーンマネージャーで、基本的には「rustupの.NET版」という位置づけです。
それはどんな問題を解決しますか
当局が列挙したいくつかの中核的要求を成人向けの言葉に翻訳したもの:
管理者権限は必要ありません。 すべての SDK、ランタイム、メタデータはすべてユーザー ディレクトリにインストールされます。システム ディレクトリには触れず、sudo も使用せず、root が所有する多数のファイルを残すこともありません。
複数のバージョンが平和的に共存します。 複数の正式バージョン、プレビュー バージョン、デイリー ビルドを、相互に干渉することなく同時にインストールできます。以前にシステム パッケージ マネージャーを使用していた場合、これはほとんど悪夢でした。
バージョン番号ではなく、「意図」によって追跡します。 これはより良い設計です。「.NET 10 の最新バージョンが必要です」または「最新の安定バージョンに従ってください」と伝えると、毎月のサービス更新を自動的に更新し続けます。正確なバージョン (例: 10.0.3)は固定され、更新によって洗い流されることはありません。
認識する global.json。 チーム プロジェクトでバージョンを固定する古いメカニズムは引き続き有効であり、ビルド結果は予測可能です。
このブログでもう 1 つ述べられているのは、非常に単純明快です。目標は、.NET を使い始めるための「概念の数」を大幅に減らすことです。以前は、独自のプラットフォームでどのインストール方法を使用するかを判断する必要がありましたが、現在はその必要はありません。すべてのプラットフォームで同じコマンド セットが使用されます。
3 分以内に始めましょう
macOS および Linux ユーザーの場合は、ターミナルで 1 行で実行できます (シェルに応じて選択してください)。
# macOS (zsh)
curl -fsSL | zsh
# Linux (bash)
curl -fsSL | bash
# PowerShell
irm | iex
インストール後、初期化します。
dotnetup init
init 2 つのことを行います: シェル環境変数を設定します。 dotnet コマンドは直接使用できます。 SDK の最新の安定バージョンをダウンロードするだけです。
現在ローカルにインストールされているものを見てください。
dotnetup list
日常生活で最もよく使用されるコマンド
.NET は毎月、サービス更新 (主にセキュリティ修正) をプッシュします。以前は、システム パッケージ マネージャーが更新するのを待つか、手動でインストールする必要がありました。今 1 つだけ:
dotnetup update
追跡しているチャンネルを再解析し、一致する最新バージョンをインストールします。セマンティクスは次のようなものです。
10.0—— .NET 10 の最新バージョンを常に最新の状態に保つlatest——最新の安定した SDK に従い、メジャー バージョン間でもそれに従います10.0.3この正確なバージョン – 十字架につけられ、動かされていない
アップデート後は、チャンネル参照がなくなった古いコンポーネントが自動的にクリーンアップされるため、手動でスペースを確保する必要はありません。
特定のランタイムのみをインストールすることもできます。たとえば、ASP.NET Core ランタイムのみが必要です。
dotnetup runtime install aspnetcore@10.0
プレビューや毎日のビルドをプレイする人は幸いです
以前、夜間のビルドでバグが修正されたかどうかを確認したいと思っていました。そのプロセスは次のとおりです。GitHub にアクセスして元の tarball を掘り出し、それをカスタム ディレクトリに手動で抽出し、環境変数を手動で変更します。セットが終わると、まったく興味を失ってしまいました。
プレビューと毎日のビルドは第一級市民になりました。
dotnetup sdk install preview # 预览版 SDK
dotnetup runtime install daily # 每日构建的运行时
dotnetup sdk install daily # 每日构建的完整工具链
安定版と共存しており、テスト後に簡単に削除できるため、すっきりしています。
ツール自体の更新も組み込まれています。
dotnetup self update
気になるかもしれないいくつかの質問
「私はこれを使っています dotnet-install.sh あなたにもできますか? 」 ブログの答えは非常に単純です。実際、ほとんどのことは実行できます。しかし、インストール スクリプトは「管理」を考慮しません。マニフェスト、署名とチェックサムの検証はなく、複数のバージョンのバッチ インストールは遅く、プラットフォーム間で統一された CLI はありません。
ルートが欲しいですか? 欲しくない。現在、ツール全体はユーザー モードで設計されています。 Windows のシステム レベルのインストール管理はロードマップにあります。
CIでも使えますか? 非常に適しています。 root は必要なく、非対話型の操作はスムーズで、コンテナ化された CI ワーカーに当然適しています。当局はさらに一歩進んで、将来的には GitHub Actions と Azure DevOps に直接統合し、現在インストール スクリプトに依存しているこれらのパイプラインの部分を置き換えることも計画しています。
いくつかの考え
正直に言うと、これは少し遅れて登場しました。rustup は 2016 年に利用可能になり、nvm はそれより前に利用可能になりました。 .NET エコシステムは、長年にわたってインストールに関して「百花を咲かせ」てきました。各メソッドは異なるシステム状態を残します。問題のトラブルシューティングはすべてマスターの経験に依存します。
しかし、遅くなっても何もしないよりはマシです。ロードマップ (Windows システム レベルのインストール サポート、CI/CD ネイティブ統合、さらには AI プログラミング アシスタントのエージェント スキル) から判断すると、Microsoft は最終的には .NET をインストールするための最初の選択肢になることを期待しています。公式が推奨する唯一の方法。これが可能であれば、将来的には新入社員の入社書類からページ全体を削除することができます。
まだパブリック プレビューの段階にあり、macOS と Linux が最も完全なエクスペリエンスを備えています。興味があれば、インストールして試してみてください。問題が発生した場合は、GitHub の dotnet/sdk ウェアハウスのディスカッション エリアで報告してください。同関係者は意見を募集していることを明らかにした。
関連リンク: