다음을 통해 공유


.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은 .NET 런타임 및 SDK 버전을 제거하기 위해 Windows 앱 & 기능 또는 앱 > 설치된 앱 설정 페이지를 사용합니다. 설정 페이지를 열기 위해 다음 이미지와 같이 시작 메뉴를 사용하여 프로그램 추가 또는 제거를 검색합니다. 앱 & 기능 대화 상자가 그림에 나와 있습니다. core 또는 .net을 검색하여 설치된 .NET 버전을 필터링하고 표시할 수 있습니다.

검색 결과를 필터링하기 위한 추가 또는 제거 텍스트를 보여 주는 Windows 시작 메뉴

컴퓨터에 설치된 버전을 찾기 위해 설정 페이지에서 .net을 검색합니다. 항목을 제거하기 위해 ...>제거를 선택합니다. Windows 10 사용 시, 제거하려는 항목에 관한 제거 버튼을 선택합니다. Windows 11의 설치된 앱 설정 페이지를 다음 이미지에서 보여 줍니다.

설치된 .NET Framework 및 .NET 버전은 검색 창에 '.net'이라는 단어가 있는 Windows 설치된 앱 대화 상자 결과에 표시됩니다.

Important

제거하고자 하는 항목의 출처가 Visual Studio임이 나타나는 경우, 해당 버전의 .NET을 제거하기 위해 Visual Studio 설치 관리자를 사용합니다.

.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 Stream, 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 제거 도구를 사용하면 시스템에서 .NET SDK 및 런타임을 제거할 수 있습니다. 제거해야 하는 버전을 지정할 수 있는 옵션 컬렉션이 제공됩니다. 자세한 내용은 .NET 제거 도구 개요를 참조하세요.

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 항목은 분리됩니다.