Windows에 .NET 설치

이 문서에서는 Windows에 .NET을 설치하는 방법을 알아봅니다. .NET은 런타임과 SDK로 구성됩니다. 런타임은 .NET 앱을 실행하는 데 사용되며 앱에 포함될 수 있습니다. SDK는 .NET 앱과 라이브러리를 만드는 데 사용됩니다. .NET 런타임은 항상 SDK와 함께 설치됩니다.

.NET의 최신 버전은 8.0입니다.

지원되는 릴리스에는 LTS(장기 지원) 릴리스와 STS(표준 기간 지원) 릴리스의 두 가지 형식이 있습니다. 모든 릴리스의 품질은 동일합니다. 유일한 차이점은 지원 기간입니다. LTS 릴리스는 3년 동안 무료 지원과 패치를 가져옵니다. STS 릴리스는 18개월 동안 무료 지원 및 패치를 받습니다. 자세한 내용은 .NET 지원 정책을 참조하세요.

다음 표에는 .NET(및 .NET Core)의 각 버전의 지원 상태가 나열되어 있습니다.

✔️ 지원됨 ❌ 지원 안 됨
8(LTS) 5
7(STS) 3.1
6(LTS) 3.0
2.1
2.0
1.1
1.0

Windows 패키지 관리자(winget)를 사용하여 설치

winget 도구를 사용하여 Windows 패키지 관리자 서비스를 통해 .NET을 설치하고 관리할 수 있습니다. winget 설치 및 사용 방법에 대한 자세한 내용은 winget 도구 사용을 참조하세요.

.NET 시스템 전체를 설치하는 경우 관리자 권한으로 설치합니다.

SDK 설치

.NET SDK를 사용하면 .NET으로 앱을 개발할 수 있습니다. .NET SDK를 설치하면 해당 런타임을 설치할 필요가 없습니다. .NET SDK를 설치하려면 다음 명령을 실행합니다.

winget install Microsoft.DotNet.SDK.8

런타임 설치

설치할 수 있는 .NET 런타임은 세 가지가 있지만 모든 형식의 .NET 앱과의 호환성을 최대화하려면 .NET 데스크톱 런타임과 ASP.NET Core 런타임을 모두 설치해야 합니다. 다음 표에서는 각 런타임에 포함된 내용을 설명합니다.

.NET 런타임 포함 .NET 데스크톱 런타임 포함 ASP.NET Core 런타임 포함
.NET 런타임 없음 아니요
.NET 데스크톱 런타임 아니요
ASP.NET Core 런타임 아니요 없음

다음 목록은 각 런타임에 대한 세부 정보와 이를 설치하기 위한 winget 명령을 제공합니다.

  • .NET 데스크톱 런타임

    이 런타임은 .NET으로 빌드된 WPF(Windows Presentation Foundation) 및 Windows Forms 앱을 지원합니다. 이는 Windows와 함께 제공되는 .NET Framework와 다릅니다. 이 런타임에는 .NET 런타임이 포함되어 있지만 별도로 설치해야 하는 ASP.NET Core 런타임은 포함되어 있지 않습니다.

    winget install Microsoft.DotNet.DesktopRuntime.8
    
  • .NET 런타임

    이는 기본 런타임이며 콘솔 앱을 실행하는 데 필요한 구성 요소만 포함합니다. 일반적으로 이 런타임 대신 .NET Desktop Runtime과 ASP.NET Core Runtime을 모두 설치합니다.

    winget install Microsoft.DotNet.Runtime.8
    
  • ASP.NET Core 런타임

    이 런타임은 웹 서버 앱을 실행하고 다양한 웹 관련 API를 제공합니다. ASP.NET Core 런타임을 사용하면 런타임을 제공하지 않는 .NET으로 만든 앱을 실행할 수 있습니다. 이 런타임 외에 .NET 런타임도 설치해야 합니다. 다음 명령은 ASP.NET Core 런타임을 설치합니다. 터미널에서 다음 명령을 실행합니다.

    winget install Microsoft.DotNet.AspNetCore.8
    

6과 같은 버전 번호를 Preview라는 단어로 대체하여 런타임의 미리 보기 버전을 설치할 수 있습니다. 다음 예에서는 .NET Desktop Runtime의 미리 보기 릴리스를 설치합니다.

winget install Microsoft.DotNet.DesktopRuntime.Preview

Visual Studio Code와 함께 설치

Visual Studio Code는 데스크톱에서 실행되는 강력한 경량 소스 코드 편집기입니다. Visual Studio Code는 Windows, macOS 및 Linux에서 사용할 수 있습니다.

Visual Studio Code에 Visual Studio처럼 자동화된 .NET Core 설치 프로그램이 포함되지 않은 경우, 간편하게 .NET Core 지원을 추가할 수 있습니다.

  1. Visual Studio Code를 다운로드하여 설치합니다.
  2. .NET SDK를 다운로드하여 설치합니다.
  3. Visual Studio Code Marketplace에서 C# 확장을 설치합니다.

Visual Studio Code용 C# 확장에는 최신 .NET SDK가 포함되어 있으므로 .NET 런타임을 별도로 설치할 필요가 없습니다.

Windows Installer로 설치

설치할 수 있는 .NET 런타임은 세 가지가 있지만 모든 형식의 .NET 앱과의 호환성을 최대화하려면 .NET 데스크톱 런타임과 ASP.NET Core 런타임을 모두 설치해야 합니다. 다음 표에서는 각 런타임에 포함된 내용을 설명합니다.

.NET 런타임 포함 .NET 데스크톱 런타임 포함 ASP.NET Core 런타임 포함
.NET 런타임 없음 아니요
.NET 데스크톱 런타임 아니요
ASP.NET Core 런타임 아니요 없음

.NET SDK를 사용하면 .NET 앱을 만들 수 있으며 모든 런타임이 포함됩니다.

Windows Installer 실행 파일은 .NET 다운로드 페이지에서 제공합니다.

프로덕션 환경에서처럼 .NET을 자동으로 설치하거나 연속 통합을 지원하려면 다음 스위치를 사용합니다.

  • /install
    .NET을 설치합니다.

  • /quiet
    UI와 프롬프트가 표시되지 않도록 합니다.

  • /norestart
    Suppresses any attempts to restart.

dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart

자세한 내용은 표준 설치 관리자 명령줄 옵션을 참조하세요.

설치 관리자는 성공 시 종료 코드 0을 반환하고 다시 시작이 필요함을 나타내기 위해 종료 코드 3010을 반환합니다. 다른 모든 값은 일반적으로 오류 코드입니다.

PowerShell 자동화를 사용하여 설치

dotnet-install 스크립트는 CI 자동화 및 런타임의 관리자가 아닌 일반 설치를 수행하는 데 사용됩니다. 스크립트는 dotnet-install 스크립트 참조 페이지에서 다운로드할 수 있습니다.

스크립트는 기본적으로 최신 LTS(장기 지원) 버전(.NET 8)을 설치합니다. Channel 스위치를 지정하여 특정 릴리스를 선택할 수 있습니다. 런타임을 설치하려면 Runtime 스위치를 포함합니다. 포함하지 않을 경우 스크립트가 SDK를 설치합니다.

다음 명령은 호환성을 극대화하기 위해 Desktop 및 ASP.NET Core 런타임을 모두 설치합니다.

dotnet-install.ps1 -Channel 8.0 -Runtime windowsdesktop
dotnet-install.ps1 -Channel 8.0 -Runtime aspnetcore

-Runtime 스위치를 생략하여 SDK를 설치합니다. 이 예에서는 -Channel 스위치가 STS로 설정되어 최신 표준 기간 지원 버전인 .NET 7을 설치합니다.

dotnet-install.ps1 -Channel STS

Visual Studio를 사용하여 설치

Visual Studio를 사용하여 .NET 앱을 개발하는 경우 다음 표에서 대상 .NET SDK 버전에 따라 필요한 Visual Studio의 최소 버전을 확인하세요.

.NET SDK 버전 Visual Studio 버전
8 Visual Studio 2022 버전 17.8 이상
7 Visual Studio 2022 버전 17.4 이상
6 Visual Studio 2022 버전 17.0 이상
5 Visual Studio 2019 버전 16.8 이상
3.1 Visual Studio 2019 버전 16.4 이상
3.0 Visual Studio 2019 버전 16.3 이상
2.2 Visual Studio 2017 버전 15.9 이상
2.1 Visual Studio 2017 버전 15.7 이상

Visual Studio가 이미 설치되어 있다면 다음 단계에 따라 버전을 확인할 수 있습니다.

  1. Visual Studio를 엽니다.
  2. 도움말>Microsoft Visual Studio 정보를 선택합니다.
  3. 정보 대화 상자에서 버전 번호를 확인합니다.

Visual Studio가 최신 .NET SDK 및 런타임을 설치할 수 있습니다.

자세한 내용은 .NET SDK, MSBuild 및 Visual Studio 버전 관리를 참조하세요.

워크로드 선택

Visual Studio를 설치하거나 수정할 때는 빌드하려는 애플리케이션의 종류에 따라 다음 워크로드 중 하나 이상을 선택합니다.

  • 기타 도구 세트 섹션의 .NET Core 플랫폼 간 개발 워크로드
  • 웹 및 클라우드 섹션의 ASP.NET 및 웹 개발 워크로드
  • 웹 및 클라우드 섹션의 Azure 개발 워크로드
  • 데스크톱 및 모바일 섹션의 .NET 데스크톱 개발 워크로드

Windows Visual Studio 2019 with .NET Core workload

지원되는 릴리스

다음 표는 현재 지원되는 .NET 릴리스와 해당 릴리스가 지원되는 Windows 버전의 목록입니다. 이러한 버전은 .NET 버전이 지원 종료에 도달하거나 Windows 버전이 지원 종료에 도달할 때까지 계속 지원됩니다.

Windows 10 버전의 서비스 종료 날짜는 버전별로 분할됩니다. Home, Pro, Pro EducationPro for Workstations 버전만 다음 표에서 다룹니다. 특정 세부 정보는 Windows 수명 주기 팩트 시트를 확인하세요.

+ 기호는 최소 버전을 나타냅니다.

운영 체제 .NET 8 .NET 7 .NET 6
Windows 11 ✔️ ✔️ ✔️
Windows Server 2022 ✔️ ✔️ ✔️
Windows Server, 버전 1903 이상 ✔️ ✔️ ✔️
Windows 10 버전 1607 이상 ✔️ ✔️ ✔️
Windows 8.1 ✔️
Windows 7 SP1 ESU ✔️
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012
✔️ ✔️ ✔️
Windows Server Core 2012 R2 ✔️ ✔️ ✔️
Windows Server Core 2012 ✔️ ✔️ ✔️
Nano Server, 버전 1809+ ✔️ ✔️ ✔️
Nano Server, 버전 1803

.NET 8이 지원되는 운영 체제, 배포, 수명 주기 정책에 대한 자세한 내용은 .NET 8 Supported OS Versions(.NET 8이 지원되는 OS 버전)를 참조하세요.

지원되지 않는 릴리스

다음 .NET 버전은 ❌ 더 이상 지원되지 않습니다.

  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

다운로드한 이진 파일 확인

설치 프로그램을 다운로드한 후 파일이 변경되거나 손상되지 않았는지 확인합니다. 컴퓨터에서 체크섬을 확인한 다음 다운로드 웹 사이트에 보고된 내용과 비교할 수 있습니다.

공식 다운로드 페이지에서 설치 프로그램이나 이진 파일을 다운로드하면 해당 파일의 체크섬이 표시됩니다. 체크섬 값을 클립보드에 복사하려면 복사 단추를 선택합니다.

The .NET download page with checksum

PowerShell 또는 명령 프롬프트를 사용하여 다운로드한 파일의 체크섬의 유효성을 검사할 수 있습니다. 예를 들어, 다음 명령은 dotnet-sdk-8.0.100-win-x64.exe 파일의 체크섬을 보고합니다.

> certutil -hashfile dotnet-sdk-8.0.100-win-x64.exe SHA512
SHA512 hash of dotnet-sdk-8.0.100-win-x64.exe:
248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
CertUtil: -hashfile command completed successfully.
> (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash
248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e

체크섬을 다운로드 사이트에서 제공한 값과 비교합니다.

PowerShell 및 체크섬 파일을 사용하여 유효성을 검사합니다.

.NET 릴리스 정보에는 다운로드한 파일의 유효성을 검사하는 데 사용할 수 있는 체크섬 파일에 대한 링크가 포함되어 있습니다. 다음 단계에서는 체크섬 파일을 다운로드하고 .NET 설치 이진 파일의 유효성을 검사하는 방법을 설명합니다.

  1. GitHub(https://github.com/dotnet/core/tree/main/release-notes/8.0)의 .NET 8 릴리스 정보 페이지에는 릴리스라는 섹션이 포함되어 있습니다. 해당 섹션의 표는 각 .NET 8 릴리스에 대한 다운로드 및 체크섬 파일로 연결됩니다.

    The github release notes version table for .NET

  2. 다운로드한 .NET 버전에 대한 링크를 선택합니다. 이전 섹션에서는 .NET 8.0.0 릴리스에 있는 .NET SDK 8.0.100을 사용했습니다.

    어떤 .NET 릴리스에 체크섬 파일이 포함되어 있는지 확실하지 않은 경우 해당 파일을 찾을 때까지 링크를 탐색합니다.

  3. 릴리스 페이지에서 .NET 런타임 및 .NET SDK 버전과 체크섬 파일에 대한 링크를 볼 수 있습니다.

    The download table with checksums for .NET

  4. 체크섬 파일에 대한 링크를 복사합니다.

  5. 다음 스크립트를 사용하되 링크를 바꿔 적절한 체크섬 파일을 다운로드합니다.

    Invoke-WebRequest https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt
    
  6. 체크섬 파일과 .NET 릴리스 파일을 모두 동일한 디렉터리에 다운로드한 상태에서 체크섬 파일에서 .NET 다운로드의 체크섬을 검색합니다.

    유효성 검사를 통과하면 True가 인쇄된 것으로 표시됩니다.

    > (Get-Content .\8.0.0-sha.txt | Select-String "dotnet-sdk-8.0.100-win-x64.exe").Line -like (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash + "*"
    True
    

    False가 인쇄되면 다운로드한 파일이 유효하지 않은 것이므로 사용해서는 안 됩니다.

런타임 정보

런타임은 .NET으로 만든 앱을 실행하는 데 사용됩니다. 앱 작성자는 앱을 게시할 때 앱과 함께 런타임을 포함할 수 있습니다. 앱 작성자가 런타임을 포함하지 않는 경우, 사용자가 런타임을 설치할 수 있습니다.

설치할 수 있는 .NET 런타임은 세 가지가 있지만 모든 형식의 .NET 앱과의 호환성을 최대화하려면 .NET 데스크톱 런타임과 ASP.NET Core 런타임을 모두 설치해야 합니다. 다음 표에서는 각 런타임에 포함된 내용을 설명합니다.

.NET 런타임 포함 .NET 데스크톱 런타임 포함 ASP.NET Core 런타임 포함
.NET 런타임 없음 아니요
.NET 데스크톱 런타임 아니요
ASP.NET Core 런타임 아니요 없음

다음 목록은 각 런타임에 대한 세부 정보를 제공합니다.

  • 데스크톱 런타임
    Windows용 .NET WPF 및 Windows Forms 데스크톱 앱을 실행합니다. .NET 런타임을 포함합니다.

  • ASP.NET Core 런타임
    ASP.NET Core 앱을 실행합니다.

  • .NET 런타임
    이 런타임은 가장 간단한 런타임이며 다른 런타임을 포함하지 않습니다. .NET 앱과의 호환성을 극대화하려면 ASP.NET Core RuntimeDesktop Runtime을 모두 설치합니다.

SDK 정보

SDK는 .NET 앱과 라이브러리를 빌드하고 게시하는 데 사용됩니다. SDK를 설치하면 ASP.NET Core, 데스크톱 및 .NET의 세 가지 런타임이 모두 포함됩니다.

Arm 기반 Windows PC

다음 섹션에서는 Arm 기반 Windows PC에 .NET을 설치할 때 고려해야 할 사항에 대해 설명합니다.

지원 대상

다음 표에서는 Arm 기반 Windows PC에서 지원되는 .NET 버전을 설명합니다.

.NET 버전 아키텍처 SDK) 런타임 경로 충돌
8 Arm64 아니요
8 X64
7 Arm64
7 X64
6 Arm64
6 X64 아니요
5 Arm64
5 x64

.NET SDK의 x64 및 Arm64 버전은 서로 독립적으로 존재합니다. 새 버전이 릴리스되면 각 아키텍처 설치를 업그레이드해야 합니다.

경로 차이

Arm 기반 Windows PC에서는 모든 Arm64 버전의 .NET이 C:\Program Files\dotnet\ 폴더에 설치됩니다. 그러나 .NET SDK의 x64 버전은 C:\Program Files\dotnet\x64\ 폴더에 설치됩니다.

경로 충돌

이전 섹션에서 설명한 대로 x64 .NET SDK는 자체 디렉터리에 설치됩니다. 이렇게 하면 Arm64 및 x64 버전의 .NET SDK가 동일한 컴퓨터에 존재할 수 있습니다. 그러나 6 이전의 x64 SDK는 지원되지 않으며 Arm64 버전과 동일한 위치인 C:\Program Files\dotnet\ 폴더에 설치됩니다. 지원되지 않는 x64 SDK를 설치하려면 먼저 Arm64 버전을 제거해야 합니다. 반대의 경우도 마찬가지입니다. Arm64 버전을 설치하려면 지원되지 않는 x64 SDK를 제거해야 합니다.

경로 변수

.NET SDK의 x64 및 Arm64 버전이 모두 설치되어 있는 경우 .NET을 시스템 경로에 추가하는 환경 변수(예: PATH 변수)를 변경해야 할 수 있습니다. 또한 DOTNET_ROOT 환경 변수를 사용하는 도구도 적절한 .NET SDK 설치 폴더를 가리키도록 업데이트해야 합니다.

종속성

.NET 8이 지원되는 Windows 버전은 다음과 같습니다.

참고 항목

+ 기호는 최소 버전을 나타냅니다.

OS 버전 아키텍처
Windows 11 22000+ x64, x86, Arm64
Windows 10 클라이언트 1607 이상 x64, x86, Arm64
Windows Server 2012+ x64, x86
Windows Server Core 2012+ x64, x86
Nano 서버 1809 이상 x64

.NET 8이 지원되는 운영 체제, 배포, 수명 주기 정책에 대한 자세한 내용은 .NET 8 Supported OS Versions(.NET 8이 지원되는 OS 버전)를 참조하세요.

Windows 7/8.1/서버 2012

다음과 같은 Windows 버전에 .NET SDK 또는 런타임을 설치할 경우 종속성이 더 필요합니다.

운영 체제 필수 조건
Windows 7 SP1 ESU - Microsoft Visual C++ 2015-2019 재배포 가능 64비트 / 32비트
- KB3063858 64비트 / 32비트
- Microsoft Root Certificate Authority 2011(.NET Core 2.1 오프라인 설치 관리자만 해당)
Windows 8.1 Microsoft Visual C++ 2015-2019 재배포 가능 64비트 / 32비트
Windows Server 2012 Microsoft Visual C++ 2015-2019 재배포 가능 64비트 / 32비트
Windows Server 2012 R2 Microsoft Visual C++ 2015-2019 재배포 가능 64비트 / 32비트

다음 dll 중 하나와 관련된 오류를 수신하는 경우에도 이전 요구 사항이 필요합니다.

  • api-ms-win-crt-runtime-l1-1-0.dll
  • api-ms-win-cor-timezone-l1-1-0.dll
  • hostfxr.dll

Docker

컨테이너는 호스트 시스템의 나머지 부분으로부터 애플리케이션을 격리하는 경량 방식을 제공합니다. 동일한 머신에 있는 컨테이너는 커널만 공유하고 애플리케이션에 주어진 리소스를 사용합니다.

.NET은 Docker 컨테이너에서 실행할 수 있습니다. 공식 .NET Docker 이미지는 MCR(Microsoft Container Registry)에 게시되며 Microsoft .NET Docker Hub 리포지토리에서 찾을 수 있습니다. 각 리포지토리에는 사용할 수 있는 .NET(SDK 또는 Runtime)과 OS가 다양하게 조합된 이미지가 포함되어 있습니다.

Microsoft는 특정 시나리오를 위한 맞춤형 이미지를 제공합니다. 예를 들어 ASP.NET Core 리포지토리는 프로덕션에서 ASP.NET Core 앱을 실행하기 위해 빌드된 이미지를 제공합니다.

Docker 컨테이너에서 .NET 사용에 대한 자세한 내용은 .NET 및 Docker 소개Samples(샘플)를 참조하세요.

문제 해결

.NET SDK를 설치한 후 .NET CLI 명령을 실행하려고 하면 문제가 발생할 수 있습니다. 이 섹션에서는 이러한 일반적인 문제를 수집하고 솔루션을 제공합니다.

.NET SDK를 찾을 수 없음

.NET SDK의 x86(32비트) 및 x64(64비트) 버전을 모두 설치했을 가능성이 높습니다. dotnet 명령을 실행하면 x64 버전으로 확인되어야 하는데 x86 버전으로 확인되기 때문에 이로 인해 충돌이 발생합니다. 이 문제는 일반적으로 x64 버전을 먼저 해결하기 위해 %PATH% 변수를 조정하여 해결됩니다.

  1. where.exe dotnet 명령을 실행하여 두 버전이 모두 설치되어 있는지 확인합니다. 그렇게 하면 Program Files\Program Files (x86)\ 폴더 모두에 대한 항목이 표시됩니다. 다음 예에서 볼 수 있듯이 Program Files (x86)\ 폴더가 첫 번째 폴더인 경우 이는 잘못된 것이므로 다음 단계로 계속 진행해야 합니다.

    > where.exe dotnet
    C:\Program Files (x86)\dotnet\dotnet.exe
    C:\Program Files\dotnet\dotnet.exe
    

    정확하고 Program Files\가 첫 번째인 경우 이 섹션에서 설명하는 문제가 없으며 GitHub에서 .NET 도움말 요청 문제를 만들어야 합니다.

  2. Windows 단추를 누르고 검색 창에 "시스템 환경 변수 편집"을 입력합니다. 시스템 환경 변수 편집을 선택합니다.

    Windows start menu with edit environment variable

  3. 시스템 속성 창이 열리고 고급 탭이 나타납니다. 환경 변수를 선택합니다.

    The Windows system properties panel open.

  4. 환경 변수 창의 시스템 변수 그룹 아래에서 경로* 행을 선택한 다음 편집 단추를 선택합니다.

    The environment variables window with user and system variables.

  5. 위로 이동아래로 이동 단추를 사용하여 C:\Program Files\dotnet\ 항목을 C:\Program Files (x86)\dotnet\ 위로 이동합니다.

    The environment variables list for the system.

앱 빌드가 예상보다 느림

Windows 기능인 스마트 앱 제어가 꺼져 있는지 확인합니다. 개발에 사용되는 컴퓨터에서는 스마트 앱 제어를 사용하도록 설정하지 않는 것이 좋습니다. "off" 이외의 설정은 SDK 성능에 부정적인 영향을 미칠 수 있습니다.

다음 단계