MSBuild 멀티 타기팅 개요MSBuild Multitargeting Overview

MSBuild를 사용하면 .NET Framework의 여러 버전 중 하나 및 여러 시스템 플랫폼 중 하나에서 실행되는 응용 프로그램을 컴파일할 수 있습니다.By using MSBuild, you can compile an application to run on any one of several versions of the .NET Framework, and on any one of several system platforms. 예를 들어 32비트 플랫폼의 .NET Framework 2.0에서 실행되도록 응용 프로그램을 컴파일하고 동일한 응용 프로그램을 64비트 플랫폼의 .NET Framework 4.5에서 실행되도록 컴파일할 수 있습니다.For example, you can compile an application to run on the .NET Framework 2.0 on a 32-bit platform, and compile the same application to run on the .NET Framework 4.5 on a 64-bit platform.

중요

이름이 “멀티 타기팅”이지만 프로젝트는 한 번에 하나의 프레임워크만, 그리고 하나의 플랫폼만 대상으로 지정할 수 있습니다.Despite the name "multitargeting", a project can target only one framework and only one platform at a time.

MSBuild 대상 지정의 몇 가지 기능은 다음과 같습니다.These are some of the features of MSBuild targeting:

  • .NET Framework의 이전 버전(예: 2.0, 3.5 또는 4)을 대상으로 하는 응용 프로그램을 개발할 수 있습니다.You can develop an application that targets an earlier version of the .NET Framework, for example, versions 2.0, 3.5, or 4.

  • .NET Framework 외에 Silverlight 프레임워크 등의 다른 프레임워크를 대상으로 지정할 수 있습니다.You can target a framework other than the .NET Framework, for example, the Silverlight Framework.

  • 대상 프레임워크의 미리 정의된 하위 집합인 프레임워크 프로필을 대상으로 지정할 수 있습니다.You can target a framework profile, which is a predefined subset of a target framework.

  • 현재 버전의 .NET Framework용 서비스 팩이 릴리스될 경우 해당 서비스 팩을 대상으로 지정할 수 있습니다.If a service pack for the current version of the .NET Framework is released, you could target it.

  • MSBuild 대상 지정은 대상 프레임워크 및 플랫폼에서 사용 가능한 기능만 응용 프로그램에서 사용되도록 합니다.MSBuild targeting guarantees that an application uses only the functionality that is available in the targeted framework and platform.

대상 프레임워크 및 플랫폼Target Framework and Platform

대상 프레임워크는 프로젝트가 실행되도록 기본 제공되는 .NET Framework의 버전이고 대상 플랫폼은 프로젝트가 실행되도록 기본 제공되는 시스템 플랫폼입니다.A target framework is the version of the .NET Framework that a project is built to run on, and a target platform is the system platform that the project is built to run on. 예를 들어 802x86 프로세서 제품군(x86)과 호환되는 32비트 플랫폼에서 실행할 .NET Framework 2.0 응용 프로그램을 대상으로 지정할 수 있습니다.For example, you might want to target a .NET Framework 2.0 application to run on a 32-bit platform that is compatible with the 802x86 processor family (x86). 대상 프레임워크와 대상 플랫폼의 조합을 대상 컨텍스트라고 합니다.The combination of target framework and target platform is known as the target context. 자세한 내용은 대상 프레임 워크 및 대상 플랫폼을 참조하세요.For more information, see Target Framework and Target Platform.

도구 집합(ToolsVersion)Toolset (ToolsVersion)

도구 집합은 응용 프로그램을 만드는 데 사용되는 도구, 작업 및 대상을 함께 수집합니다.A Toolset collects together the tools, tasks, and targets that are used to create the application. 도구 집합에는 csc.exe 및 vbc.exe와 같은 컴파일러, 일반 대상 파일(microsoft.common.targets) 및 일반 작업 파일(microsoft.common.tasks)이 포함됩니다.A Toolset includes compilers such as csc.exe and vbc.exe, the common targets file (microsoft.common.targets), and the common tasks file (microsoft.common.tasks). 4.5 도구 집합은 .NET Framework 버전 2.0, 3.0, 3.5, 4, 4.5를 대상으로 지정하는 데 사용될 수 있습니다.The 4.5 Toolset can be used to target .NET Framework versions 2.0, 3.0, 3.5, 4, and 4.5. 하지만 2.0 도구 집합은 .NET Framework 버전 2.0을 대상으로 지정하는 데만 사용될 수 있습니다.However, the 2.0 Toolset can only be used to target the .NET Framework version 2.0. 자세한 내용은 도구 집합(ToolsVersion)을 참조하세요.For more information, see Toolset (ToolsVersion).

참조 어셈블리Reference Assemblies

도구 집합에 지정된 참조 어셈블리를 사용하여 응용 프로그램을 디자인하고 빌드할 수 있습니다.The reference assemblies that are specified in the Toolset help you design and build an application. 이러한 참조 어셈블리는 특정 대상 빌드를 사용하도록 설정하고 Visual Studio IDE의 구성 요소와 기능을 대상과 호환되는 구성 요소와 기능으로 제한합니다.These reference assemblies not only enable a particular target build, but also restrict components and features in the Visual Studio IDE to those that are compatible with the target. 자세한 내용은 디자인 타임에 어셈블리 확인을 참조하세요.For more information, see Resolving Assemblies at Design Time

대상 및 작업 구성Configuring Targets and Tasks

MSBuild 대상 및 작업을 구성하여 MSBuild를 통해 out-of-process로 실행할 수 있으므로 현재 실행하고 있는 컨텍스트와는 상당히 다른 컨텍스트를 대상으로 지정할 수 있습니다.You can configure MSBuild targets and tasks to run out-of-process with MSBuild so that you can target contexts that are considerably different than the one you are running on. 예를 들어, .NET Framework 4.5가 설치된 64비트 플랫폼에서 개발 컴퓨터가 실행되는 동안 32비트 .NET Framework 2.0 응용 프로그램을 대상으로 지정할 수 있습니다.For example, you can target a 32-bit, .NET Framework 2.0 application while the development computer is running on a 64-bit platform with .NET Framework 4.5. 자세한 내용은 대상 및 작업 구성을 참조하세요.For more information, see Configuring Targets and Tasks.

문제 해결Troubleshooting

대상 컨텍스트에 포함되지 않은 어셈블리를 참조하려고 하면 오류가 발생할 수 있습니다.You might encounter errors if you try to reference an assembly that is not part of the target context. 이러한 오류 및 수행할 관련 작업에 대한 자세한 내용은 .NET Framework 대상 지정 오류 문제 해결을 참조하세요.For more information about these errors and what to do about them, see Troubleshooting .NET Framework Targeting Errors.