다음을 통해 공유


프레임워크 대상 지정 개요

Visual Studio에서 프로젝트를 대상으로 지정할 .NET 버전을 지정할 수 있습니다. 프레임워크 대상 지정은 애플리케이션이 지정된 프레임워크 버전에서 사용할 수 있는 기능만 사용하도록 보장하는 데 도움이 됩니다. .NET Framework 앱이 다른 컴퓨터에서 실행되려면 애플리케이션이 대상으로 하는 프레임워크 버전이 컴퓨터에 설치된 프레임워크 버전과 호환되어야 합니다.

Visual Studio 솔루션에는 여러 버전의 .NET을 대상으로 하는 프로젝트가 포함될 수 있습니다. 그러나 단일 빌드에 대한 참조 조건부를 사용하거나 각 대상 프레임워크에 대해 서로 다른 이진 파일을 빌드하여 단일 버전의 .NET에 대해서만 빌드할 수 있습니다. 대상 프레임워크에 대한 자세한 내용은 대상 프레임워크참조하세요.

다양한 플랫폼에 대한 애플리케이션을 대상으로 지정할 수도 있습니다. 자세한 내용은 다중 대상 지정참조하세요.

프레임워크 대상 지정 기능

프레임워크 대상 지정에는 다음 기능이 포함됩니다.

  • 이전 프레임워크 버전을 대상으로 하는 프로젝트를 열면 Visual Studio에서 프로젝트를 자동으로 업그레이드하거나 대상을 as-is그대로 둘 수 있습니다.

  • .NET Framework 프로젝트를 만들 때 대상으로 지정할 .NET Framework 버전을 지정할 수 있습니다.

  • 단일 프로젝트에서 여러 프레임워크 대상으로 수 있습니다.

  • 동일한 솔루션의 각 여러 프로젝트에서 다른 버전의 .NET을 대상으로 지정할 수 있습니다.

  • 기존 프로젝트가 대상으로 하는 .NET 버전을 변경할 수 있습니다.

    프로젝트가 대상으로 하는 .NET 버전을 변경하면 Visual Studio에서 참조 및 구성 파일에 필요한 내용을 변경합니다.

이전 프레임워크 버전을 대상으로 하는 프로젝트에서 작업하는 경우 Visual Studio는 다음과 같이 개발 환경을 동적으로 변경합니다.

  • 새 항목 추가 대화 상자, 새 참조 추가 대화 상자 및 서비스 참조 추가 대화 상자의 항목을 필터링하여 대상 버전에서 사용할 수 없는 선택 항목을 생략합니다.

  • 도구 상자 사용자 지정 컨트롤을 필터링하여 대상 버전에서 사용할 수 없는 컨트롤을 제거하고 여러 컨트롤을 사용할 수 있는 경우 가장 up-to날짜 컨트롤만 표시합니다.

  • 대상 버전에서 사용할 수 없는 언어 기능을 생략하도록 IntelliSense 필터링합니다.

  • 속성 창의 속성을 필터링하여 대상 버전에서 사용할 수 없는 속성을 생략합니다.

  • 대상 버전에서 사용할 수 없는 옵션을 생략하도록 메뉴 옵션을 필터링합니다.

  • 빌드의 경우 컴파일러 버전과 대상 버전에 적합한 컴파일러 옵션을 사용합니다.

메모

  • 프레임워크 대상 지정은 애플리케이션이 올바르게 실행되도록 보장하지 않습니다. 애플리케이션이 대상 버전에 대해 실행되는지 테스트해야 합니다.
  • .NET Framework 2.0 아래의 프레임워크 버전을 대상으로 지정할 수 없습니다.

대상 프레임워크 변경

기존 Visual Basic, C#또는 F# 프로젝트에서 프로젝트 속성 대화 상자에서 대상 .NET 버전을 변경합니다. C++ 프로젝트의 대상 버전을 변경하는 방법에 대한 자세한 내용은 대상 프레임워크 및 플랫폼 도구 집합 수정하는 방법을 참조하세요.

  1. 솔루션 탐색기변경할 프로젝트의 상황에 맞는 메뉴를 마우스 오른쪽 단추로 클릭한 다음 속성 선택합니다.

  2. 속성 창의 왼쪽 열에서 애플리케이션 탭을 선택합니다.

    프로젝트 속성 애플리케이션 탭

    메모

    UWP 앱을 만든 후에는 대상 버전의 Windows 또는 .NET을 변경할 수 없습니다.

  3. 대상 프레임워크 목록에서 원하는 버전을 선택합니다.

  4. 표시되는 확인 대화 상자에서 단추를 선택합니다.

    프로젝트가 언로드됩니다. 다시 로드할 때 방금 선택한 .NET 버전을 대상으로 합니다.

  1. 솔루션 탐색기변경할 프로젝트의 상황에 맞는 메뉴를 마우스 오른쪽 단추로 클릭한 다음 속성 선택합니다.

  2. 속성 창의 왼쪽 열에서 애플리케이션 탭을 선택합니다.

    메모

    UWP 앱을 만든 후에는 대상 버전의 Windows 또는 .NET을 변경할 수 없습니다.

  3. 대상 프레임워크 목록에서 원하는 버전을 선택합니다.

    .NET Framework 프로젝트경우 표시되는 대화 상자는 다음 스크린샷과 유사할 수 있습니다.

    .NET Framework 옵션이 강조 표시된 프로젝트 속성 대화 상자의 스크린샷

    .NET 프로젝트경우 대화 상자는 다음 스크린샷과 유사할 수 있습니다.

    '대상 프레임워크' 선택 항목이 표시된 프로젝트 속성 대화 상자의 일반 탭 스크린샷

  4. 확인 대화 상자가 나타나면 단추를 선택합니다.

    프로젝트가 언로드됩니다. 다시 로드할 때 방금 선택한 .NET 버전을 대상으로 합니다.

여러 프레임워크 대상 지정

.NET 5 이상을 사용하면 프로젝트 파일을 수동으로 편집하여 단일 빌드에서 여러 프레임워크에 대한 프로젝트를 빌드할 수 있습니다. 프로젝트 파일을 열고 TargetFramework 속성을 TargetFrameworks바꾸고 다음 코드와 같이 세미콜론으로 구분된 TFM(대상 프레임워크 모니커) 목록을 지정합니다.

   <TargetFrameworks>net7.0;net8.0</TargetFrameworks>

SDK 스타일 프로젝트에서 대상 프레임워크 에 있는 TFM 목록을참조하세요.

이 변경 후 프로젝트를 다시 로드해야 합니다. 그런 다음 속성 창을 열면 애플리케이션 탭에서 대상 프레임워크 목록을 편집할 수 있습니다.

'대상 프레임워크' 목록이 표시된 프로젝트 속성 대화 상자의 일반 탭 스크린샷

메모

코드에 대상으로 지정한 것과 다른 버전의 .NET에 대한 참조가 포함된 경우 코드를 컴파일하거나 실행할 때 오류 메시지가 나타날 수 있습니다. 이러한 오류를 해결하려면 참조를 수정합니다. .NET 대상 지정 오류에 대한 문제 해결 방법을 보세요.

대상 프레임워크에 따라 프로젝트 파일에서 다음과 같은 방식으로 나타낼 수 있습니다.

  • .NET Core 앱의 경우: <TargetFramework>netcoreapp2.1</TargetFramework>
  • .NET Standard 앱의 경우: <TargetFramework>netstandard2.0</TargetFramework>
  • .NET Framework 앱의 경우: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>

대상 프레임워크 버전 선택

.NET Framework 프로젝트를 만들 때 프로젝트 템플릿을 선택한 후 대상 .NET Framework 버전을 선택할 수 있습니다. 사용 가능한 프레임워크 목록에는 선택한 템플릿 유형에 적용할 수 있는 설치된 프레임워크 버전이 포함됩니다. non-.NET Framework 프로젝트 템플릿(예: .NET Core 템플릿)의 경우 Framework 드롭다운 목록이 표시되지 않습니다.

Visual Studio 2019의 프레임워크 드롭다운 스크린샷

.NET Framework 프로젝트 만들선택하는 경우 다음 스크린샷과 유사한 인터페이스가 표시됩니다.

Visual Studio 2022의 프레임워크 드롭다운 목록 스크린샷

.NET 프로젝트 만들선택하는 경우 다음 두 스크린샷과 유사한 UI(사용자 인터페이스)가 표시됩니다.

표시되는 첫 번째 화면은 새 프로젝트 구성 대화 상자입니다.

Visual Studio 2022의 '새 프로젝트 구성' 대화 상자 스크린샷

두 번째 화면은 추가 옵션 대화 상자입니다.

Visual Studio 2022의 '추가 옵션' 대화 상자 스크린샷

시스템 및 사용자 어셈블리 참조 해결

.NET 버전을 대상으로 지정하려면 먼저 적절한 어셈블리 참조를 설치해야 합니다. .NET 다운로드 페이지에서 다양한 버전의 .NET용 개발자 팩을 다운로드할 수 있습니다.

.NET Framework 프로젝트의 경우 참조 추가 대화 상자는 대상 .NET Framework 버전과 관련이 없는 시스템 어셈블리를 사용하지 않도록 설정하여 실수로 프로젝트에 추가할 수 없도록 합니다. (시스템 어셈블리는 .NET Framework 버전에 포함된 .dll 파일입니다.) 대상 버전보다 높은 프레임워크 버전에 속하는 참조는 확인되지 않으며 이러한 참조에 종속된 컨트롤은 추가할 수 없습니다. 이러한 참조를 사용하도록 설정하려면 프로젝트의 .NET Framework 대상을 참조가 포함된 대상으로 다시 설정합니다.

어셈블리 참조에 대한 자세한 내용은 어셈블리를 디자인 타임에 해결을 참조하세요.

LINQ 사용

.NET Framework 3.5 이상을 대상으로 지정하면 System.Core 대한 참조와 System.Linq 대한 프로젝트 수준 가져오기(Visual Basic에서만 해당)가 자동으로 추가됩니다. LINQ 기능을 사용하려면 Option Infer 설정해야 합니다(Visual Basic에서만 해당). 대상을 이전 .NET Framework 버전으로 변경하면 참조 및 가져오기가 자동으로 제거됩니다. 자세한 내용은 LINQ 작업을 참조하세요.

참조