다음을 통해 공유


여러 프레임워크 버전 및 플랫폼 대상 지정

MSBuild를 사용하면 여러 버전의 .NET Framework 중 하나와 여러 시스템 플랫폼 중 하나에서 실행할 애플리케이션을 컴파일할 수 있습니다. 예를 들어 32비트 플랫폼의 .NET Framework 2.0에서 실행되도록 애플리케이션을 컴파일하고 64비트 플랫폼의 .NET Framework 4.5에서 실행되도록 동일한 애플리케이션을 컴파일할 수 있습니다.

메모

이 문서에서는 프로젝트가 한 번에 하나의 프레임워크와 하나의 플랫폼만 대상으로 지정할 수 있는 .NET Framework 빌드에 적용되는 이전 유형의 다중 대상 지정에 대해 설명합니다. .NET Core 및 .NET 5 이상에서는 프로젝트 파일의 TargetFrameworks(복수) 속성을 사용하여 새로운 유형의 멀티타겟팅을 사용할 수 있습니다. dotnet build 또는 유사한 .NET CLI 명령어를 사용하거나 프로젝트를 다시 로드한 후 Visual Studio에서 빌드하는 경우, 각 대상 프레임워크에 대해 한 번씩 빌드가 발생하는 새로운 방식의 다중 타겟팅을 사용합니다. 대상 프레임워크참조하세요.

MSBuild 대상 지정의 몇 가지 기능은 다음과 같습니다.

  • 이전 버전의 .NET Framework(예: 버전 2.0, 3.5 또는 4)를 대상으로 하는 애플리케이션을 개발할 수 있습니다.

  • .NET Framework 이외의 프레임워크(예: Silverlight Framework)를 대상으로 지정할 수 있습니다.

  • 대상 프레임워크의 미리 정의된 하위 집합인 프레임워크 프로필대상으로 지정할 수 있습니다.

  • .NET Framework의 현재 버전에 대한 서비스 팩이 릴리스된 경우 대상으로 지정할 수 있습니다.

  • MSBuild 대상 지정은 애플리케이션이 대상 프레임워크 및 플랫폼에서 사용할 수 있는 기능만 사용한다는 것을 보장합니다.

대상 프레임워크 및 플랫폼

대상 프레임워크 프로젝트가 실행되도록 빌드된 .NET Framework 버전이며, 대상 플랫폼 프로젝트가 실행되도록 빌드된 시스템 플랫폼입니다. 예를 들어 80x86 프로세서 제품군(x86)과 호환되는 32비트 플랫폼에서 실행되도록 .NET Framework 2.0 애플리케이션을 대상으로 지정할 수 있습니다. 대상 프레임워크와 대상 플랫폼의 조합은 대상 컨텍스트로 불립니다. 자세한 내용은 대상 프레임워크 및 대상 플랫폼을 참조하세요.

도구 세트(ToolsVersion)

도구 집합은 애플리케이션을 만드는 데 사용되는 도구, 작업 및 대상을 함께 수집합니다. 도구 집합에는 csc.exevbc.exe와 같은 컴파일러, 공통 대상 파일(microsoft.common.targets), 및 공통 작업 파일(microsoft.common.tasks)이 포함됩니다. 4.5 도구 집합을 사용하여 .NET Framework 버전 2.0, 3.0, 3.5, 4 및 4.5를 대상으로 지정할 수 있습니다. 그러나 2.0 도구 집합은 .NET Framework 버전 2.0을 대상으로 하는 데만 사용할 수 있습니다. 자세한 내용은 도구 집합(ToolsVersion)를 참조하세요.

참조 어셈블리

도구 집합에 지정된 참조 어셈블리는 애플리케이션을 디자인하고 빌드하는 데 도움이 됩니다. 이러한 참조 어셈블리는 특정 대상 빌드를 사용하도록 설정할 뿐만 아니라 Visual Studio IDE의 구성 요소 및 기능을 대상과 호환되는 구성 요소로 제한합니다. 자세한 내용은 디자인 타임에 어셈블리를 해결하는 방법을참조하세요.

대상 및 작업 구성

실행 중인 컨텍스트와 상당히 다른 컨텍스트를 대상으로 지정할 수 있도록 MSBuild 대상 및 작업이 MSBuild에서 Out-of-process로 실행되도록 구성할 수 있습니다. 예를 들어 개발 컴퓨터가 .NET Framework 4.5를 사용하는 64비트 플랫폼에서 실행되는 동안 32비트 .NET Framework 2.0 애플리케이션을 대상으로 지정할 수 있습니다. 자세한 내용은 대상 및 작업구성을 참조하세요.

문제 해결

대상 컨텍스트에 속하지 않는 어셈블리를 참조하려고 하면 오류가 발생할 수 있습니다. 이러한 오류 및 해당 오류에 대해 수행할 작업에 대한 자세한 내용은 .NET Framework 대상 지정 오류문제 해결을 참조하세요.