Note
dotnetup はパブリック プレビュー段階です。 その機能と動作は、一般公開前に変更される可能性があります。
dotnetup は、要求したものを、それがインストールするファイルから分離します。 このモデルを使用すると、複数のアプリで 1 つの .NET インストールを共有し、dotnetup不要になったファイルを削除できます。
インストール先
.NETインストール ルートは、dotnetupが追跡するディレクトリです。 インストール ルート ディレクトリには次のものがあります:
- 完全修飾ディレクトリ パス。
- アーキテクチャ:
x86、x64、またはarm64。 -
channelsで指定される 0 個以上のインストール仕様。 - 0 個以上の具体的なインストール。
現在の CLI は、実行中の dotnetup プロセスのアーキテクチャ向けにインストールされます。 アーキテクチャ オプションはありません。
既定の dotnetup 管理の .NET インストール ルートは、dotnetup データ ディレクトリの dotnet サブディレクトリです。
| Platform | 既定のインストール ルート |
|---|---|
| Windows | %LOCALAPPDATA%\dotnetup\dotnet |
| macOS | ~/Library/Application Support/dotnetup/dotnet |
| Linux |
$XDG_DATA_HOME/dotnetup/dotnet、または~/.local/share/dotnetup/dotnetが設定されていない場合はXDG_DATA_HOME |
--install-pathを使用して、別のインストール ルートを選択します。 明示的なインストール パスは、global.json からのパスよりも優先され、global.json からのパスは既定のインストール ルートよりも優先されます。
dotnetupは、Program Files\dotnetや/usr/share/dotnetなどのシステム管理された .NET ディレクトリには書き込みません。
コンポーネント
dotnetup は、次のコンポーネントの種類を管理します。
| コンポーネント | ランタイム仕様名 | インストールされたコンテンツ |
|---|---|---|
| .NET SDK | 適用なし | SDK、ホスト、ランタイム、ターゲット パック、および関連する SDK コンテンツ |
| .NET ランタイム | runtime |
Microsoft.NETCore.App runtime |
| ASP.NET Core ランタイム | aspnetcore |
Microsoft.AspNetCore.App runtime |
| Windows デスクトップ ランタイム | windowsdesktop |
Microsoft.WindowsDesktop.AppWindowsのランタイム |
ASP.NET Coreエイリアスaspnetと Windows Desktop エイリアス desktopは、ランタイム コンポーネントの仕様で受け入れられます。
インストール仕様
インストール仕様は、コンポーネントとチャネルまたは正確なバージョンを記録します。 たとえば、10.0.1xx の SDK 仕様は、「10.0.1xx 機能バンド内で最新の SDK を維持する」ことを意味します。
サポートされているさまざまな種類のチャネルとバージョンの詳細については、チャネルとバージョンをご覧ください。
各仕様には、次のいずれかのソースがあります。
-
Explicit: コマンド ラインでチャネルまたはバージョンを指定しました。 -
GlobalJson:dotnetupはglobal.jsonファイルから SDK 要件を導出しました。
All はアンインストール フィルターです。 仕様ソースとして格納されません。
厳密なバージョン指定は固定された指定です。 更新コマンドでは、それは進行しません。 チャネル仕様は、更新時に新しいバージョンに決定されることがあります。
インストール済み項目と共有ファイル
インストールでは、1 つの具象コンポーネント バージョンと、それが使用するサブコンポーネント ディレクトリが記録されます。 2つの仕様が同じインストールに解決されることがあります。
アンインストール コマンドは、最初に一致する条件を削除します。 ガベージ コレクションは、残りの各仕様に一致する最新のインストール済みバージョンを保持します。 インストールとその非共有サブコンポーネントは、どの残りの仕様もそれらを必要としない場合にのみ削除されます。
追跡されたインストールと追跡されていないインストール
既定では、インストール コマンドはその仕様と結果をマニフェストに記録します。 追跡対象のインストールは、 dotnetupによって一覧表示、更新、および削除できます。
--untrackedオプションは、ファイルをインストールしますが、それらは記録しません。
dotnetup では、これらのファイルの一覧表示、更新、削除は行われません。 このオプションは、別のプロセスがターゲット ディレクトリを所有している場合にのみ使用します。
誤って混在するのを防ぐために、ターゲットに、選択したマニフェストにない既存の.NET インストールが含まれている場合、追跡対象のインストールは失敗します。 別のディレクトリを選択するか、既存のインストールを削除するか、--untrackedを使用してください。
状態ファイル
dotnetup データ ディレクトリには、次のユーザー レベルの状態ファイルが含まれています。
| ファイル | Purpose |
|---|---|
dotnetup_manifest.json |
インストール ルート、インストールの仕様、インストール、および共有サブコンポーネントを追跡します。 |
dotnetup_manifest.json.sha256 |
dotnetup が書き込まなかったマニフェスト コンテンツへの変更を検出します。 |
dotnetup.config.json |
.NET アクセス モードと、dotnetup ディレクトリがPATH上にあるかどうかを格納します。 |
これらのファイルは編集しないでください。 関連する状態を変更するには、 dotnetup install、 update、 uninstall、および env コマンドを使用します。
DOTNET_DOTNETUP_DATA_DIR環境変数はデータディレクトリを変更します。
--manifest-path オプションは、1 つのコマンドで使用されるマニフェストのみを変更します。 構成ファイルまたは既定のインストール ルートは変更されません。
同時実行の操作
インストール、更新、アンインストール、一覧表示、ガベージ コレクションのワークフローは、共有インストール状態へのアクセスを調整します。 複数の指定を受け取るコマンドは、インストール前にそれらを解決し、解決したそれらを同時にダウンロードできます。 マニフェストの変更は順序どおり保持されます。
参照
.NET