Framework 대상 지정 개요Framework targeting overview

Visual Studio에서는 프로젝트에서 대상으로 하려는 .NET의 버전을 지정할 수 있습니다.In Visual Studio, you can specify the version of .NET that you want your project to target. 프레임워크 대상 지정을 통해 애플리케이션에서 지정된 프레임워크 버전에서 제공되는 기능만 사용하도록 할 수 있습니다.Framework targeting helps guarantee that the application uses only functionality that is available in the specified framework version. .NET Framework 앱이 다른 컴퓨터에서 실행되려면 애플리케이션이 대상으로 하는 Framework 버전이 컴퓨터에 설치된 Framework 버전과 호환되어야 합니다.For .NET Framework apps to run on another computer, the framework version that the application targets must be compatible with the framework version that's installed on the computer.

Visual Studio 솔루션에는 여러 가지 버전의 .NET을 대상으로 하는 프로젝트가 포함될 수 있습니다.A Visual Studio solution can contain projects that target different versions of .NET. 그러나 단일 빌드에 대한 참조 조건을 사용하여 단일 버전의 .NET을 대상으로 빌드하거나 각 버전에 대해 여러 이진 파일을 재귀적으로 빌드하는 것만 가능합니다.However, note that you can only build against a single version of .NET either using reference conditionals for a single build or recursively build different binaries for each version. 대상 프레임워크에 대한 자세한 내용은 대상 프레임워크를 참조하세요.For more information about target frameworks, see Target frameworks.

다른 플랫폼에 대한 애플리케이션을 대상으로 지정할 수도 있습니다.You can also target applications for different platforms. 자세한 내용은 멀티 타기팅을 참조하세요.For more information, see Multitargeting.

프레임워크 대상 지정 기능Framework targeting features

프레임워크 대상 지정에는 다음 기능이 포함됩니다.Framework targeting includes the following features:

  • 이전 버전의 프레임워크를 대상으로 하는 프로젝트를 열면 Visual Studio에서 프로젝트를 자동으로 업그레이드하거나 대상을 있는 그대로 유지할 수 있습니다.When you open a project that targets an earlier framework version, Visual Studio can automatically upgrade the project or leave the target as-is.

  • .NET Framework 프로젝트를 만들 때 대상으로 지정할 .NET Framework의 버전을 지정할 수 있습니다.When you create a .NET Framework project, you can specify the version of the .NET Framework that you want to target.

  • 단일 프로젝트에서 여러 프레임워크를 대상 지정할 수 있습니다.You can target multiple frameworks in a single project.

  • 같은 솔루션에 포함된 여러 프로젝트에서 각각 .NET의 다른 버전을 대상으로 지정할 수 있습니다.You can target a different version of .NET in each of several projects in the same solution.

  • 기존 프로젝트에서 대상으로 지정하는 .NET의 버전을 변경할 수 있습니다.You can change the version of .NET that an existing project targets.

    프로젝트가 대상으로 하는 .NET의 버전을 변경하면 Visual Studio에서는 필요에 따라 참조 및 구성 파일을 변경합니다.When you change the version of .NET that a project targets, Visual Studio makes any required changes to references and configuration files.

이전 프레임워크 버전을 대상으로 지정하는 프로젝트 관련 작업을 할 경우 Visual Studio에서는 다음과 같이 개발 환경을 동적으로 변경합니다.When you work on a project that targets an earlier framework version, Visual Studio dynamically changes the development environment, as follows:

  • 새 항목 추가 대화 상자, 새 참조 추가 대화 상자 및 서비스 참조 추가 대화 상자에서 항목을 필터링하여 대상 버전에서 사용할 수 없는 선택 항목을 생략합니다.It filters items in the Add New Item dialog box, the Add New Reference dialog box, and the Add Service Reference dialog box to omit choices that are not available in the targeted version.

  • 도구 상자 에서 사용자 지정 컨트롤을 필터링하여 대상 버전에서 사용할 수 없는 컨트롤을 제거하고 여러 컨트롤을 사용할 수 있을 경우에는 가장 최신 컨트롤만 표시합니다.It filters custom controls in the Toolbox to remove those that are not available in the targeted version and to show the only the most up-to-date controls when multiple controls are available.

  • IntelliSense 를 필터링하여 대상 버전에서 사용할 수 없는 언어 기능을 생략합니다.It filters IntelliSense to omit language features that aren't available in the targeted version.

  • 속성 창에서 속성을 필터링하여 대상 버전에서 사용할 수 없는 속성을 생략합니다.It filters properties in the Properties window to omit those that aren't available in the targeted version.

  • 메뉴 옵션을 필터링하여 대상 버전에서 사용할 수 없는 옵션을 생략합니다.It filters menu options to omit options that aren't available in the targeted version.

  • 빌드에는 컴파일러 버전 및 대상 버전에 적절한 컴파일러 옵션을 사용합니다.For builds, it uses the version of the compiler and the compiler options that are appropriate for the targeted version.

참고

  • 프레임워크 대상 지정을 수행해도 애플리케이션이 제대로 실행되지 않을 수 있습니다.Framework targeting does not guarantee that your application will run correctly. 애플리케이션을 테스트하여 대상 버전에 대해 실행되는지 확인해야 합니다.You must test your application to make sure it runs against the targeted version.
  • .NET Framework 2.0 이하의 프레임워크 버전은 대상으로 지정할 수 없습니다.You cannot target framework versions below .NET Framework 2.0.

대상 프레임워크 버전 선택Select a target framework version

.NET Framework 프로젝트를 만들 때 프로젝트 템플릿을 선택한 후 대상 .NET Framework 버전을 선택할 수 있습니다.When you create a .NET Framework project, you can select the target .NET Framework version after you select a project template. 사용 가능한 프레임워크 목록에는 선택한 템플릿 유형에 적용 가능한 설치된 프레임워크 버전이 포함됩니다.The list of available frameworks includes the installed framework versions that are applicable to the selected template type. 비 .NET Framework 프로젝트 템플릿의 경우(예: .NET Core 템플릿), Framework 드롭다운 목록이 나타나지 않습니다.For non-.NET Framework project templates, for example .NET Core templates, the Framework drop-down list doesn't appear.

VS 2017의 프레임워크 드롭다운

VS 2019의 프레임워크 드롭다운

대상 프레임워크 변경Change the target framework

기존 Visual Basic, C# 또는 F# 프로젝트의 경우, 프로젝트 속성 대화 상자에서 대상 .NET 버전을 변경합니다.In an existing Visual Basic, C#, or F# project, you change the target .NET version in the project properties dialog box. C++ 프로젝트의 대상 버전을 변경하는 방법에 대한 자세한 내용은 대상 프레임워크 및 플랫폼 도구 집합을 수정하는 방법을 참조하세요.For information about how to change the target version for C++ projects, see How to modify the target framework and platform toolset instead.

  1. 솔루션 탐색기 에서 변경하려는 프로젝트의 오른쪽 클릭 메뉴를 열고 속성 을 선택합니다.In Solution Explorer, open the right-click menu for the project that you want to change, and then choose Properties.

  2. 속성 창의 왼쪽 열에서 애플리케이션 탭을 선택합니다.In the left column of the Properties window, choose the Application tab.

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

    참고

    UWP 앱을 만든 후에는 Windows 또는 .NET의 대상 버전을 변경할 수 없습니다.After you create a UWP app, you can't change the targeted version of either Windows or .NET.

  3. 대상 프레임워크 목록에서 원하는 버전을 선택합니다.In the Target Framework list, choose the version that you want.

  4. [확인] 대화 상자가 나타나면 단추를 선택합니다.In the verification dialog box that appears, choose the Yes button.

    프로젝트가 언로드됩니다.The project unloads. 다시 로드되면 이 프로젝트는 방금 선택한 .NET 버전을 대상으로 지정합니다.When it reloads, it targets the .NET version that you just chose.

참고

코드에 사용자가 대상으로 지정한 것과 다른 버전의 .NET에 대한 참조가 포함된 경우, 코드를 컴파일하거나 실행할 때 오류 메시지가 나타날 수 있습니다.If your code contains references to a different version of the .NET than the one that you targeted, error messages may appear when you compile or run the code. 이러한 오류를 해결하려면 참조를 수정합니다.To resolve these errors, modify the references. .NET 대상 지정 오류 문제 해결을 참조하세요.See Troubleshoot .NET targeting errors.

대상 프레임워크에 따라 프로젝트 파일에서 다음과 같이 표시될 수 있습니다.Depending on the target framework, it can be represented in the following ways in the project file:

  • .NET Core 앱: <TargetFramework>netcoreapp2.1</TargetFramework>For a .NET Core app: <TargetFramework>netcoreapp2.1</TargetFramework>
  • .NET Standard 앱: <TargetFramework>netstandard2.0</TargetFramework>For a .NET Standard app: <TargetFramework>netstandard2.0</TargetFramework>
  • .NET Framework 앱: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>For a .NET Framework app: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>

시스템 및 사용자 어셈블리 참조 확인Resolve system and user assembly references

.NET 버전을 대상으로 지정하려면 먼저 적절한 어셈블리 참조를 설치해야 합니다.To target a .NET version, you must first install the appropriate assembly references. .NET 다운로드 페이지에서 다양한 버전의 .NET 개발자 팩을 다운로드할 수 있습니다.You can download developer packs for different versions of .NET on the .NET downloads page.

.NET Framework 프로젝트의 경우 참조 추가 대화 상자에서는 실수로 프로젝트에 추가될 수 없도록 대상 .NET Framework 버전과 관련이 없는 시스템 어셈블리를 비활성화합니다.For .NET Framework projects, the Add Reference dialog box disables system assemblies that do not pertain to the target .NET Framework version so that they cannot be inadvertently added to a project. (시스템 어셈블리는 .NET Framework 버전에 포함된 .dll 파일입니다.) 대상 버전 이상의 프레임워크 버전에 속한 참조는 확인되지 않고 이런 참조에 따라 결정되는 컨트롤을 추가할 수 없습니다.(System assemblies are .dll files that are included in a .NET Framework version.) References that belong to a framework version that's higher than the targeted version will not resolve, and controls that depend on such a reference cannot be added. 해당 참조를 사용하도록 설정하려면 프로젝트의 .NET Framework 대상을 참조가 포함된 대상으로 다시 설정합니다.If you want to enable such a reference, reset the .NET Framework target of the project to one that includes the reference.

어셈블리 참조에 대한 자세한 내용은 디자인 타임에 어셈블리 확인을 참조하세요.For more information about assembly references, see Resolve assemblies at design time.

LINQ 사용Enable LINQ

.NET Framework 3.5 이상을 대상으로 지정하면 System.Core 에 대한 참조 및 System.Linq에 대한 프로젝트 수준 가져오기(Visual Basic에서만)가 자동으로 추가됩니다.When you target the .NET Framework 3.5 or later, a reference to System.Core and a project-level import for System.Linq (in Visual Basic only) are added automatically. LINQ 기능을 사용하려면 Option Infer도 켜야 합니다(Visual Basic에서만).If you want to use LINQ features, you must also turn Option Infer on (in Visual Basic only). 대상을 이전 .NET Framework 버전으로 변경하면 참조 및 가져오기가 자동으로 제거됩니다.The reference and import are removed automatically if you change the target to an earlier .NET Framework version. 자세한 내용은 LINQ 작업을 참조하세요.For more information, see Work with LINQ.

참고 항목See also