Microsoft 미리 보기 dotnetup: .NET SDK 및 런타임용 도구 체인 관리자
Microsoft는 시스템 관리 디렉터리가 아닌 사용자 계정 내에서 .NET SDK 및 런타임을 설치, 업데이트 및 제거하는 크로스 플랫폼 도구 체인 관리자인 dotnetup의 공개 미리 보기를 출시했습니다. .NET 블로그에 보고된 바와 같이 이 도구는 .NET SDK의 프로그램 관리자인 Chet Husk가 10월 15일에 발표했으며 Rustup 및 nvm 모델을 따릅니다.
설명서에 따르면 명령과 동작은 미리 보기 릴리스 간에 변경될 수 있으며 프로덕션 컴퓨터는 설치 프로그램, 패키지 관리자 또는 Visual Studio를 계속 사용해야 합니다.
발표에 설명된 대로 디자인은 버전 대신 의도를 추적합니다. 개발자가 최신, lts, 미리보기, 일일, 10과 같은 메이저, 10.0과 같은 마이너, 10.0.1xx와 같은 기능 밴드 등의 채널을 요청하면 dotnetup이 이를 릴리스로 해결합니다. 게시물 노트와 같은 정확한 버전은 업데이트 중에 고정된 상태로 유지됩니다.
여러 요구 사항이 하나의 관리 설치를 공유할 수 있으며 도구는 가장 가까운 global.json을 읽어 팀 빌드가 결정성을 유지하도록 합니다. 또한 문서에 따르면 파일은 Windows, macOS 및 Linux에서 사용자의 로컬 데이터 디렉터리에 있으며 dotnetup은 절대 Program Files\dotnet 또는 /usr/share/dotnet에 쓰지 않습니다.
설치에는 컬 또는 irm을 사용하여 aka.ms에서 가져온 부트스트랩 스크립트를 사용합니다. 문서에 설명된 대로 SHA-512 체크섬을 확인한 후 ~/.dotnetup에 바이너리를 배치하고 dotnetup init는 안정적인 최신 SDK를 설치하고 셸을 구성합니다. 문서에는 세 가지 액세스 모드가 나열되어 있습니다. 없음은 환경을 건드리지 않고 dotnetup dotnet을 통해 .NET을 실행하고, 셸은 셸 프로필을 편집하고, Windows 전용 기본값인 모든 곳에서 시스템 PATH를 변경하고 권한 상승이 필요합니다.
또한 문서에서는 Visual Studio가 설치한 모드를 포함하여 모든 위치 모드가 컴퓨터 전체 복사본보다 우선하므로 SDK dotnetup이 설치되지 않은 프로젝트가 빌드되지 않는다고 경고합니다. 이를 방지하기 위해 설정에서는 기존 컴퓨터 전체 설치를 마이그레이션하는 기능을 제공하는 것으로 알려졌습니다.
보고된 대로 월별 서비스는 추적된 모든 채널을 다시 확인하고 일치하는 최신 버전을 설치하는 단일 dotnetup 업데이트가 됩니다. 개별 런타임을 대상으로 지정할 수 있습니다(예: dotnetup 런타임 설치 aspnetcore@10.0). 문서에는 SDK, .NET 런타임, ASP.NET Core 런타임 및 Windows 데스크톱 런타임이 지원되는 구성 요소로 나열되어 있습니다. 게시물에 명시된 대로 업데이트 후 dotnetup은 나머지 요구 사항이 필요하지 않은 모든 구성 요소를 제거하고 SDK 제거 또는 런타임 제거는 동일한 정리를 트리거합니다.
또한 문서에는 일일 빌드가 코드 서명되지 않는다고 명시되어 있지만 미리 보기 및 일일 빌드는 dotnetup SDK 설치 미리 보기 또는 dotnetup 런타임 설치를 통해 나란히 설치됩니다. dotnetup 자체 업데이트는 도구 자체를 새로 고칩니다. dotnet-install 스크립트를 통해 설치된 구성 요소 추적, 서명 및 체크섬 유효성 검사, 더 빠른 다중 버전 설치 및 모든 플랫폼에서 하나의 CLI 표면을 추적하는 게시물이 있습니다. 명시된 로드맵에는 Windows의 관리자 수준 설치, GitHub Actions 및 Azure DevOps 작업의 스크립트 기반 부분 대체, AI 도우미가 기본적으로 도구에 도달할 수 있도록 에이전트 기술이 포함되어 있습니다.
한편, r/dotnet에서 몇 달 동안 사용해온 한 개발자는 더 간단한 Linux 설정을 칭찬했지만, 가장 많은 의견은 왜 이미 여러 사람이 사용하고 있는 mise 대신 dotnetup을 선택하는지 물었습니다.
다른 사람들은 컬-쉘 부트스트랩을 비판하고, Winget, apt 또는 Homebrew 패키지를 요청했으며, Visual Studio에서 dotnetup 설치를 볼 수 없으며 dotnet-ef 및 기타 CLI 도구도 관리되기를 원했습니다. 블로그에 대한 답변에서 Husk는 사용자 검증 후에 패키지가 계획되어 있다고 밝혔습니다.
관심 있는 독자를 위해 명령 참조 및 원격 분석 세부 정보를 포함한 전체 설명서를 Microsoft Learn에서 확인할 수 있으며 피드백은 dotnet/sdk GitHub 토론의 dotnetup 범주로 전달됩니다.