Note
dotnetup 는 공개 미리 보기로 제공됩니다. 해당 기능 및 동작은 일반 공급 전에 변경될 수 있습니다.
dotnetup은 요청한 항목과 설치하는 파일을 구분합니다. 이 모델을 사용하면 여러 요구 사항이 하나의 .NET 설치를 공유하고 .NET 설치에서 더 이상 필요하지 않은 파일을 dotnetup 제거할 수 있습니다.
설치 경로
.NET 설치 루트는 dotnetup가 추적하는 디렉터리입니다. 설치 루트에는 다음이 있습니다.
- 완전 수식된 디렉터리 경로입니다.
- 아키텍처:
x86,x64, 또는arm64. - 설치 사양 0개 이상이며,
channels로 지정됩니다. - 0개 이상의 콘크리트 설치.
현재 CLI는 실행 중인 dotnetup 프로세스의 아키텍처용으로 설치됩니다. 아키텍처 옵션이 없습니다.
기본 dotnetup 관리 .NET 설치 루트는 dotnetup 데이터 디렉터리의 dotnet 하위 디렉터리입니다.
| Platform | 기본 설치 루트 |
|---|---|
| Windows | %LOCALAPPDATA%\dotnetup\dotnet |
| macOS | ~/Library/Application Support/dotnetup/dotnet |
| Linux |
XDG_DATA_HOME가 설정되지 않은 경우 $XDG_DATA_HOME/dotnetup/dotnet 또는 ~/.local/share/dotnetup/dotnet |
--install-path를 사용하여 다른 설치 루트를 선택합니다. 명시적 설치 경로는 global.json에서 가져온 경로보다 우선하며, 그 경로는 기본 설치 루트보다 우선합니다.
dotnetup는 시스템 관리 .NET 디렉터리(예: Program Files\dotnet 또는 /usr/share/dotnet.)에 쓰지 않습니다.
구성 요소
dotnetup 은 다음 구성 요소 유형을 관리합니다.
| Component | 런타임 사양 이름 | 설치된 콘텐츠 |
|---|---|---|
| .NET SDK | 적용할 수 없음 | SDK, 호스트, 런타임, 대상 팩 및 관련 SDK 콘텐츠 |
| .NET 런타임 | runtime |
Microsoft.NETCore.App 런타임 |
| ASP.NET Core 런타임 | aspnetcore |
Microsoft.AspNetCore.App 런타임 |
| Windows Desktop 런타임 | windowsdesktop |
Microsoft.WindowsDesktop.AppWindows 런타임 |
ASP.NET Core 별칭 aspnet 및 Windows Desktop 별칭 desktop 은 런타임 구성 요소 사양에서 허용됩니다.
설치 사양
설치 사양은 구성 요소와 채널 또는 정확한 버전을 지정합니다. 예를 들어 SDK 사양은 10.0.1xx "10.0.1xx 기능 대역에 최신 SDK를 유지"를 의미합니다.
채널 및 버전에서 지원되는 다양한 채널과 버전에 대해 자세히 알아볼 수 있습니다.
각 사양에는 다음 원본 중 하나가 있습니다.
-
Explicit: 명령줄에 채널 또는 버전을 지정했습니다. -
GlobalJson:dotnetup에서global.json파일로부터 SDK 요구 사항을 파생시켰습니다.
All 는 설치 제거 필터입니다. 사양 원본으로 저장되지 않습니다.
정확히 지정된 버전은 고정된 버전 지정입니다. 업데이트 명령은 이를 앞으로 진행시키지 않습니다. 업데이트 중에 채널 사양이 최신 버전으로 해석될 수 있습니다.
설치 항목 및 공유 파일
설치는 하나의 구체적인 구성 요소 버전과 사용하는 하위 구성 요소 디렉터리를 기록합니다. 두 가지 사양은 동일한 설치를 가리킬 수 있습니다.
제거 명령은 먼저 일치하는 사양을 제거합니다. 가비지 수집은 나머지 각 명세와 일치하는 최신 설치된 버전을 유지합니다. 어떤 나머지 사양도 필요로 하지 않을 때만 설치 및 해당 설치의 공유되지 않은 하위 구성 요소를 제거합니다.
제거가 상태를 변경하기 전에 다른 사양이 요청된 설치를 유지하거나 가비지 수집이 추가 설치를 제거하는 경우 경고합니다. 대화형 모드에서는 이러한 경고는 확인이 필요합니다. 자세한 내용은 SDK 제거 동작 및 런타임 제거 동작을 참조하세요.
추적 및 추적되지 않은 설치
기본적으로 설치 명령은 사양과 결과를 매니페스트에 기록합니다. 추적된 설치는 dotnetup에서 나열, 업데이트 및 제거할 수 있습니다.
이 --untracked 옵션은 기록하지 않고 파일을 설치합니다.
dotnetup는 해당 파일을 표시, 업데이트 또는 제거하지 않습니다. 다른 프로세스가 대상 디렉터리를 소유하는 경우에만 이 옵션을 사용합니다.
실수로 혼합되는 것을 방지하기 위해 대상에 선택한 매니페스트에 없는 기존 .NET 설치가 포함된 경우 추적된 설치가 실패합니다. 다른 디렉터리를 선택하거나, 기존 설치를 제거하거나, --untracked을 사용합니다.
상태 저장 파일
dotnetup 데이터 디렉터리에는 다음과 같은 사용자 수준 상태 파일이 포함됩니다.
| 파일 | Purpose |
|---|---|
dotnetup_manifest.json |
설치 루트, 설치 사양, 설치 항목 및 공유 하위 구성 요소를 추적합니다. |
dotnetup_manifest.json.sha256 |
dotnetup에서 작성하지 않은 매니페스트 콘텐츠의 변경 내용을 감지합니다. |
dotnetup.config.json |
.NET 액세스 모드, PATH 디렉터리가 dotnetup에 있는지 여부 및 업데이트 알림 사용 여부를 저장합니다. |
update-checks/ |
dotnetup 업데이트 확인을 위한 타임스탬프와 사용 가능한 버전을 저장합니다. |
이러한 파일을 편집하지 마세요.
update, uninstall, env 및 dotnetup install 명령을 사용하여 관련 상태를 변경합니다.
dotnetup self update --update-notifications <true|false>를 사용하여 실행 파일을 업데이트하지 않고 알림 설정을 변경하세요.
DOTNET_DOTNETUP_DATA_DIR 환경 변수는 데이터 디렉터리를 변경합니다. 이 --manifest-path 옵션은 한 명령에서 사용하는 매니페스트만 변경합니다. 구성 파일 또는 기본 설치 루트는 변경되지 않습니다.
동시 작업
설치, 업데이트, 제거, 나열 및 가비지 수집 워크플로는 공유 설치 상태에 대한 액세스를 조정합니다. 여러 사양을 허용하는 명령은 설치 전에 이를 해석하고 동시에 다운로드됩니다. 매니페스트 변경 내용은 serialize된 상태로 유지됩니다.
자체 업데이트는 .NET 설치 상태와 별도로 dotnetup 실행 파일의 교체를 조정합니다.
자체 업데이트가 조정 잠금을 보유하는 동안 다른 명령이 실패할 수 있습니다.
업데이트가 완료된 후 해당 명령을 다시 시도하세요. 자세한 내용은 dotnetup self update참조하세요.
또한, 다음을 참조하세요.
.NET