.NET 런타임 및 SDK를 제거하는 방법

시간이 지남에 따라 업데이트된 버전의 .NET 런타임 및 SDK를 설치할 때 머신에서 오래된 버전의 .NET을 제거하는 것이 좋습니다. 이전 버전의 런타임을 제거하면 .NET 버전 선택문서에 설명된 대로 공유 프레임워크 애플리케이션을 실행하도록 선택한 런타임이 변경될 수 있습니다.

버전을 제거해야 하나요?

.NET 버전 선택 동작 및 .NET의 런타임 호환성을 업데이트하여 이전 버전을 안전하게 제거할 수 있습니다. .NET 런타임 업데이트는 7.x 및 6.x와 같은 주 버전 밴드 내에서 호환됩니다. 또한 .NET SDK의 최신 릴리스는 호환 가능한 방식으로 이전 버전의 런타임을 대상으로 하는 애플리케이션을 빌드하는 기능을 일반적으로 유지합니다.

일반적으로 애플리케이션에 필요한 최신 SDK 및 런타임의 최신 패치 버전만 있으면 됩니다. 이전 SDK 또는 런타임 버전을 유지하려는 인스턴스에는 project.json 기반 애플리케이션 유지 관리가 포함됩니다. 애플리케이션에 이전 SDK 또는 런타임에 대한 특정 이유가 없는 경우 이전 버전을 안전하게 제거할 수 있습니다.

설치된 버전 확인

.NET CLI에는 컴퓨터에 설치된 SDK 및 런타임 버전을 나열하는 데 사용할 수 있는 옵션이 있습니다. dotnet --list-sdks를 사용하여 설치된 SDK의 목록을 확인하고 dotnet --list-runtimes를 사용하여 런타임의 목록을 확인합니다. 자세한 내용은 .NET이 이미 설치되어 있는지 확인하는 방법을 참조하세요.

.NET 제거

.NET은 Windows 앱 및 기능 대화 상자를 사용하여 .NET 런타임 및 SDK의 버전을 제거합니다. 다음 그림은 앱 및 기능 대화 상자를 보여 줍니다. core 또는 .net을 검색하여 설치된 .NET 버전을 필터링하고 표시할 수 있습니다.

.NET 제거를 위한 프로그램 추가/제거

컴퓨터에서 제거할 버전을 선택하고 제거를 클릭합니다.

.NET을 제거하는 가장 좋은 방법은 .NET 설치에 사용한 작업을 미러링하는 것입니다. 세부 정보는 선택한 Linux 배포 및 설치 방법에 따라 다릅니다.

미리 보기 릴리스는 수동으로 설치되며 수동으로 제거해야 합니다. 자세한 내용은 스크립트된 또는 수동 섹션을 참조하세요.

Important

Red Hat 설치의 경우 Red Hat Product Documentation for .NET(.NET용 Red Hat 제품 설명서)을 참조하세요.

.NET을 설치하는 경우 다음 형식을 제거할 수 있습니다.

패키지 관리자

수동으로 설치된 미리 보기 버전에서 업그레이드하는 경우가 아니라면 패키지 관리자를 사용하여 업그레이드할 때 .NET SDK를 먼저 제거할 필요가 없습니다. 패키지 관리자 update 또는 refresh 명령은 최신 버전을 성공적으로 설치하면 이전 버전을 자동으로 제거합니다. 미리 보기 버전이 설치되어 있는 경우 제거합니다.

패키지 관리자를 사용하여 .NET을 설치한 경우 동일한 패키지 관리자를 사용하여 .NET SDK 또는 런타임을 제거합니다. .NET 설치는 가장 인기 있는 패키지 관리자를 지원합니다. 환경의 정확한 구문은 배포의 패키지 관리자에 관한 설명서를 참조하세요.

  • apt-get(8)은 Debian 기반 시스템(Ubuntu 포함)에서 사용됩니다.
  • yum(8)은 Fedora, CentOS, Oracle Linux 및 RHEL에서 사용됩니다.
  • zypper(8)는 openSUSE 및 SLES(SUSE Linux Enterprise 시스템)에서 사용됩니다.
  • dnf(8)는 Fedora에서 사용됩니다.

대부분의 경우 패키지를 제거하는 명령은 remove입니다.

대부분의 패키지 관리자에 대한 .NET SDK 설치의 패키지 이름은 dotnet-sdk이며, 그 뒤에 버전 번호가 옵니다. 주 및 부 버전 번호만 필요합니다. 예를 들어 .NET SDK 버전 8.0.200을 패키지 dotnet-sdk-8.0로 참조할 수 있습니다.

런타임만 설치하고 SDK는 설치하지 않은 머신에서 패키지 이름은 .NET 런타임의 경우 dotnet-runtime-<version>이고 전체 런타임 스택의 경우 aspnetcore-runtime-<version>입니다.

스크립트된 또는 수동

dotnet-install 스크립트를 사용하거나 tarball을 추출하는 .NET을 설치한 경우 수동 메서드를 사용하여 .NET을 제거해야 합니다.

.NET을 수동으로 설치하면 일반적으로 /usr/share/dotnet/, /usr/lib/dotnet/ 또는 $HOME/.dotnet 디렉터리에 설치됩니다. SDK, 런타임 및 .NET 호스트는 별도의 하위 디렉터리에 설치됩니다. 이러한 "구성 요소" 디렉터리에는 각 버전의 .NET에 대한 디렉터리가 포함되어 있습니다. 버전이 지정된 디렉터리를 제거하면 해당 버전의 .NET이 시스템에서 제거됩니다. 해당 디렉터리는 Linux 배포에 따라 달라질 수 있습니다.

.NET이 설치된 위치를 검색하는 데 사용할 수 있는 세 가지 명령이 있습니다. SDK용 dotnet --list-sdks , 런타임용 dotnet --list-runtimes 및 모든 항목에 대한 dotnet --info. 이러한 명령은 .NET 호스트를 나열하지 않습니다. 설치된 호스트를 확인하려면 /usr/share/dotnet/host/fxr/ 디렉터리를 확인합니다. 다음 목록은 특정 버전의 .NET 디렉터리를 나타내며, 여기서 $version 변수는 .NET의 버전을 나타냅니다.

  • SDK:

    /usr/share/dotnet/sdk/$version/

  • 런타임:

    런타임은 Microsoft.AspNetCore.All 또는 Microsoft.NETCore.App (특히 .NET 런타임)와 같은 특정 .NET 제품 런타임을 기반으로 합니다. $product(이)가 제품 런타임인 /usr/share/dotnet/shared/$product/$version 디렉터리에 설치됩니다. 예를 들어 다음 디렉터리를 볼 수 있습니다.

    /usr/share/dotnet/shared/Microsoft.NETCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.All/$version/
    
  • .NET 호스트

    /usr/share/dotnet/host/fxr/$version/

명령 rm -rf(을)를 사용하여 .NET 버전을 제거합니다. 예를 들어 6.0.406 SDK를 제거하려면 다음 명령을 실행합니다.

sudo rm -rf /usr/share/dotnet/sdk/6.0.406

Important

버전 디렉터리에서 제거하려는 "버전"이 일치하지 않을 수 있습니다. 단일 .NET 릴리스와 함께 설치된 개별 런타임 및 SDK에는 다른 버전이 있을 수 있습니다. 예를 들어 8.0.2 ASP.NET Core 런타임 및 8.0.8 .NET 런타임을 설치한 ASP.NET Core 8 런타임을 설치했을 수 있습니다. 각각 버전이 다른 디렉터리가 있습니다. 자세한 내용은 .NET의 버전 관리 방법 개요를 참조하세요.

.NET을 수동으로 설치하면 일반적으로 /usr/local/share/dotnet/ 또는 $HOME/.dotnet 디렉터리에 설치됩니다. SDK, 런타임 및 .NET 호스트는 별도의 하위 디렉터리에 설치됩니다. 이러한 "구성 요소" 디렉터리에는 각 버전의 .NET에 대한 디렉터리가 포함되어 있습니다. 버전이 지정된 디렉터리를 제거하면 해당 버전의 .NET이 시스템에서 제거됩니다. 이러한 디렉터리는 macOS 버전에 따라 달라질 수 있습니다.

.NET이 설치된 위치를 검색하는 데 사용할 수 있는 세 가지 명령이 있습니다. SDK용 dotnet --list-sdks , 런타임용 dotnet --list-runtimes 및 모든 항목에 대한 dotnet --info. 이러한 명령은 .NET 호스트를 나열하지 않습니다. 설치된 호스트를 확인하려면 /usr/local/share/dotnet/host/fxr/ 디렉터리를 확인합니다. 다음 목록은 특정 버전의 .NET 디렉터리를 나타내며, 여기서 $version 변수는 .NET의 버전을 나타냅니다.

  • SDK:

    /usr/local/share/dotnet/sdk/$version/

  • 런타임:

    런타임은 Microsoft.AspNetCore.All 또는 Microsoft.NETCore.App (특히 .NET 런타임)와 같은 특정 .NET 제품 런타임을 기반으로 합니다. $product(이)가 제품 런타임인 /usr/local/share/dotnet/shared/$product/$version 디렉터리에 설치됩니다. 예를 들어 다음 디렉터리를 볼 수 있습니다.

    /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version/dotnet --info
    /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version/
    /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version/
    
  • .NET 호스트

    /usr/local/share/dotnet/host/fxr/$version/

명령 rm -rf(을)를 사용하여 .NET 버전을 제거합니다. 예를 들어 6.0.406 SDK를 제거하려면 다음 명령을 실행합니다.

sudo rm -rf /usr/local/share/dotnet/sdk/6.0.406

Important

버전 디렉터리에서 제거하려는 "버전"이 일치하지 않을 수 있습니다. 단일 .NET 릴리스와 함께 설치된 개별 런타임 및 SDK에는 다른 버전이 있을 수 있습니다. 예를 들어 8.0.2 ASP.NET Core 런타임 및 8.0.8 .NET 런타임을 설치한 ASP.NET Core 8 런타임을 설치했을 수 있습니다. 각각 버전이 다른 디렉터리가 있습니다. 자세한 내용은 .NET의 버전 관리 방법 개요를 참조하세요.

Important

Arm 기반 Mac(예: M1 칩이 있는 Mac)을 사용하는 경우 Arm 기반 Mac에 .NET 설치에 설명된 디렉터리 경로를 검토합니다.

.NET 제거 도구

.NET 제거 도구(dotnet-core-uninstall)를 사용하면 시스템에서 .NET SDK 및 런타임을 제거할 수 있습니다. 제거해야 하는 버전을 지정할 수 있는 옵션 컬렉션이 제공됩니다.

참고 항목

현재 .NET 제거 도구는 .NET 8+를 지원하지 않습니다. 도구 의 릴리스 일정에 대한 자세한 내용은 GitHub - dotnet-uninstall-tool 로드맵을 참조하세요.

.NET SDK 버전에 대한 Visual Studio 종속성

Visual Studio 2019 버전 16.3 이전에는 Visual Studio 설치 관리자가 .NET Core 버전 2.1 또는 2.2용 독립 실행형 SDK 설치 관리자를 호출했습니다. 따라서 SDK 버전은 Windows 앱 및 기능 대화 상자에 표시됩니다. 독립 실행형 설치 관리자를 사용하여 Visual Studio에서 설치한 .NET SDK를 제거하면 Visual Studio가 중단될 수 있습니다. SDK를 제거한 후 Visual Studio에서 문제가 발생하는 경우 해당 특정 버전의 Visual Studio에서 복구를 실행합니다. 다음 표에서는 .NET Core SDK 버전에 대한 몇 가지 Visual Studio 종속성을 보여줍니다.

Visual Studio 버전 .NET Core SDK 버전
Visual Studio 2019 버전 16.2 .NET Core SDK 2.2.4xx, 2.1.8xx
Visual Studio 2019 버전 16.1 .NET Core SDK 2.2.3xx, 2.1.7xx
Visual Studio 2019 버전 16.0 .NET Core SDK 2.2.2xx, 2.1.6xx
Visual Studio 2017 버전 15.9 .NET Core SDK 2.2.1xx, 2.1.5xx
Visual Studio 2017 버전 15.8 .NET Core SDK 2.1.4xx

Visual Studio 2019 버전 16.3부터 Visual Studio는 .NET SDK의 자체 복사본을 담당합니다. 그런 이유로 앱 및 기능 대화 상자에 해당 SDK 버전이 더 이상 표시되지 않습니다.

NuGet 대체 디렉터리 제거

.NET Core 3.0 SDK 이전에는 .NET Core SDK 설치 관리자가 NuGetFallbackFolder로 명명된 디렉터리를 사용하여 NuGet 패키지의 캐시를 저장했습니다. 이 캐시는 dotnet restoredotnet build /t:Restore 같은 작업 중에 사용되었습니다. NuGetFallbackFolder(은)는 .NET이 설치된 sdk 폴더 아래에 있습니다. 예를 들어 Windows에서 C:\Program Files\dotnet\sdk\NuGetFallbackFolder와 macOS의 /usr/local/share/dotnet/sdk/NuGetFallbackFolder에 있을 수 있습니다.

다음 경우에는 이 디렉터리를 제거하고자 할 수 있습니다.

  • .NET Core 3.0 SDK 또는 .NET 5 이상 버전을 사용하여 개발 중입니다.
  • 3.0 이전의 .NET Core SDK 버전을 사용하여 개발하고 있지만 온라인으로 작업할 수 있습니다.

NuGet 대체 디렉터리를 제거하려면 삭제할 수 있지만 이렇게 하려면 관리자 권한이 필요합니다.

dotnet 디렉터리를 삭제하지 않는 것이 좋습니다. 이렇게 하면 이전에 설치한 모든 전역 도구가 제거됩니다. 또한 Windows에서

  • Visual Studio 2019 버전 16.3 이상 버전의 호환성이 손상됩니다. 복구를 실행하여 복구할 수 있습니다.
  • 앱 및 기능 대화 상자에 있는 .NET Core SDK 항목은 분리됩니다.