Note
dotnetup 는 공개 미리 보기로 제공됩니다. 해당 기능 및 동작은 정식 출시 전에 변경될 수 있습니다.
Dotnetup은 설치한 .NET SDK 및 런타임을 사용할 수 있도록 환경을 구성할 수 있습니다. 다음 환경 변수를 설정하여 이 작업을 수행합니다.
-
PATH: 명령줄에서dotnet명령을 사용할 수 있도록 합니다. Visual Studio 또는 C# Dev Kit와 같은 개발 도구도PATH를 사용하여 .NET SDK 및 런타임을 찾습니다. -
DOTNET_ROOT: 프레임워크 종속 애플리케이션 실행 파일에 .NET 설치 및 공유 런타임의 위치를 알려줍니다.
Dotnetup은 이러한 환경 변수가 설정된 위치를 제어하는 다양한 액세스 모드를 지원합니다. 초기 dotnetup 설정에서 또는 나중에 dotnetup env 명령으로 액세스 모드를 선택할 수 있습니다.
| 액세스 모드 | 행동 |
|---|---|
none |
이러한 환경 변수를 수정하지 않습니다.
dotnetup dotnet를 사용하여 .NET을 실행합니다. |
shell |
이러한 환경 변수를 설정하도록 셸 프로필을 수정합니다. 해당 셸에서 시작된 프로세스는 dotnetup에 의해 설치된 .NET SDK 및 런타임을 사용합니다. |
everywhere |
PATH 시스템을 수정하고 사용자 수준 DOTNET_ROOT 환경 변수를 설정합니다. Windows에서만 사용할 수 있습니다. |
기본적으로 dotnetup은 액세스 모드 설정과 관계없이 자체를 PATH에도 추가합니다. 이것은 dotnetup env set --dotnetup-on-path <true|false>로 제어할 수 있습니다.
Everywhere 모드 고려 사항
Windows에서는 Everywhere 모드가 기본값이므로, dotnetup에 의해 설치된 SDK 및 런타임은 개발 도구와 cmd를 셸로 사용하는 터미널에서 사용할 수 있습니다. 그러나 주로 .NET SDK 및 런타임의 컴퓨터 전체 설치와 상호 작용하는 방법에 대해 알아야 할 몇 가지 사항이 있습니다.
컴퓨터 전체의 .NET 설치는 Program Files 폴더 아래에 있습니다. .NET 다운로드 페이지에서 다운로드할 수 있는 설치 관리자를 사용해 설치할 수 있습니다. Visual Studio는 .NET SDK 및 런타임을 컴퓨터 전체에 설치하고 프레임워크 종속 애플리케이션의 설치 관리자는 종속된 .NET 런타임을 머신 전체 위치에 설치할 수도 있습니다.
everywhere 모드에서는 사용자 로컬 dotnetup 관리 .NET 설치 루트가 컴퓨터 전체의 .NET 설치 루트를 재정의합니다. 즉, Program Files에 설치된 .NET SDK 및 런타임을 사용할 수 없습니다. 일치하는 SDK가 설치되어 있지 않으면 해당 SDK에 의존하는 프로젝트가 빌드되지 않습니다. 일치하는 런타임이 설치되지 않은 경우 프레임워크 종속 애플리케이션은 "이 애플리케이션을 실행하려면 .NET 설치하거나 업데이트해야 합니다."라는 오류와 함께 시작되지 않습니다.
이러한 오류를 방지하기 위해 초기 dotnetup 설정은 기존 시스템 .NET SDK 및 런타임 설치를 마이그레이션하는 옵션을 제공합니다.
dotnetup runtime install --migrate-from-system를 실행해 SDK를, dotnetup sdk install --migrate-from-system를 실행해 런타임을 명시적으로 마이그레이션할 수도 있습니다.
사방 모드를 켜거나 끄려면 시스템 PATH를 수정해야 하며, 이를 위해 권한 상승(예: UAC 프롬프트 승인 또는 "관리자 권한으로 실행")이 필요합니다. 이는 .NET 시스템 전체 설치 관리자가 Program Files .NET 설치 루트를 시스템 PATH에 추가하고 시스템 PATH가 명령을 찾을 때 사용자 수준 PATH보다 우선하기 때문입니다. 따라서 dotnetup은 dotnetup .NET 설치 루트가 우선하도록 시스템 PATH를 수정해야 합니다.
시스템 PATH는 모든 사용자에게 적용되므로 이러한 변경 내용은 다른 사용자에게 영향을 미칠 수 있습니다. 시스템 PATH에 추가되는 경로는 기본적으로 사용자의 로컬 AppData 폴더 아래에 있습니다. 이는 일반적으로 다른 사용자가 액세스할 수 없으므로 dotnet의 어떤 버전이 결정되는지에 영향을 주지 않습니다. 그러나 관리자 권한 프로세스(즉, 관리자 권한으로 실행되는 프로세스)는 해당 경로를 읽을 수 있으며, 다른 사용자의 .NET SDK 또는 런타임을 예기치 않게 확인할 수 있습니다.
지원되는 셸
프로필 및 스크립트 생성 지원:
- Bash
- Z 셸
- 물고기
- Pwsh (PowerShell Core)
- PowerShell
--shell
dotnetup를 전달하지 않으면 현재 셸을 감지합니다. 감지를 사용할 수 없거나 다른 프로필을 업데이트하려는 경우 명시적 셸을 사용합니다.
dotnetup env set shell --shell zsh
저장된 상태 및 관찰된 상태
dotnetup.config.json는 선택한 액세스 모드와 dotnetup가 PATH에서 켜져 있어야 하는지 여부를 저장합니다.
dotnetup env show 는 해당 구성을 현재 프로필 및 환경과 비교합니다. 관찰된 상태가 일치하지 않으면 드리프트를 보고합니다.
저장된 구성을 다시 적용하여 드리프트를 수정하세요:
dotnetup env set
현재 터미널
프로필 및 Windows 환경 변경은 현재 프로세스의 환경에 반영되지 않습니다. 새 터미널을 열거나, 수정된 프로필을 source하거나, 생성된 스크립트를 평가합니다.
Bash 또는 Z 셸의 경우:
eval "$(dotnetup env script)"
PowerShell의 경우:
dotnetup env script --shell pwsh | Invoke-Expression
env script 는 선택 옵션을 전달하지 않을 때 저장된 구성을 따릅니다.
--dotnetup, --dotnet 또는 둘 다 사용하여 생성된 콘텐츠를 선택합니다.
환경 구성 제거
모든 관리되는 환경 와이어링을 제거합니다.
dotnetup env clear
이 명령은 다음과 동일합니다:
dotnetup env set none --dotnetup-on-path false
SDK 또는 런타임을 제거하지 않습니다.
.NET