MSBuild는 프로그램이 빌드를 수행하고 프로젝트를 검사할 수 있도록 공용 API 화면을 제공합니다. MSBuild API의 최신 버전은 다음 NuGet 패키지에서 찾을 수 있습니다.
| 패키지 이름 | 설명 |
|---|---|
| Microsoft.Build | MSBuild 프로젝트를 만들고 편집하고 평가하는 데 사용되는 Microsoft.Build 어셈블리를 포함합니다. |
| Microsoft.Build.Framework | 다른 MSBuild 어셈블리에서 사용하는 일반적인 MSBuild 프레임워크 어셈블리를 포함합니다. |
| Microsoft.Build.Runtime | MSBuild의 전체 실행 파일 복사본을 제공합니다. 애플리케이션이 MSBuild를 설치할 필요 없이 프로젝트를 로드하거나 In-process 빌드를 실행해야 하는 경우에만 이 패키지를 참조합니다. 이 패키지를 사용하여 프로젝트를 성공적으로 평가하려면 추가 구성 요소(예: 컴파일러)를 애플리케이션 디렉터리로 집계해야 합니다. |
| Microsoft.Build.Tasks.Core | MSBuild의 일반적으로 사용되는 작업을 구현하는 Microsoft.Build.Tasks 어셈블리를 포함합니다. |
| Microsoft.Build.Utilities.Core | 사용자 지정 MSBuild 작업을 구현하는 데 사용되는 Microsoft.Build.Utilities 어셈블리를 포함합니다. |
또한 NuGet은 더 이상 사용되지 않는 레거시 어셈블리 인 Microsoft.Build.Engine도 호스트합니다.
MSBuild API에는 여러 버전이 있으며 버전 15 및 16의 경우 NuGet 패키지에는 두 가지 형식의 어셈블리가 있으며, 하나는 .NET Framework로 컴파일되고 다른 하나는 .NET Framework API 표면의 하위 집합인 .NET Core로 컴파일됩니다. .NET Core 버전의 MSBuild는 명령을 호출 dotnet 할 때와 Mac 및 Linux 시스템에서 MSBuild를 사용할 때 사용됩니다.
MSBuild API에 대한 설명서는 .NET API 브라우저를 사용하거나 다음 목록에서 네임스페이스를 검색하여 찾을 수 있습니다.
| 네임스페이스 | 적용 대상 | 설명 |
|---|---|---|
| Microsoft.Build.Construction | 모두 | MSBuild 개체 모델이 평가되지 않은 값으로 프로젝트 루트를 생성하는 데 사용하는 형식을 포함합니다. 각 프로젝트 루트는 프로젝트 또는 대상 파일에 해당합니다. |
| Microsoft.Build.Definition | 모두 | 프로젝트 생성을 ProjectOptions 지원하는 클래스를 포함합니다. |
| Microsoft.Build.Evaluation | 모두 | MSBuild 개체 모델이 프로젝트를 평가하는 데 사용하는 형식을 포함합니다. 각 프로젝트는 하나 이상의 프로젝트 루트와 연결됩니다. |
| Microsoft.Build.Evaluation.Context | 모두 |
EvaluationContext 호출 간에 평가 상태를 저장하는 데 사용되는 클래스를 포함합니다. |
| Microsoft.Build.Exceptions | 모두 | 빌드 프로세스 중에 throw될 수 있는 예외 형식을 포함합니다. |
| Microsoft.Build.Execution | 모두 | MSBuild 개체 모델이 프로젝트를 빌드하는 데 사용하는 형식을 포함합니다. |
| Microsoft.Build.Framework | 모두 | 작업 및 로거가 MSBuild 엔진과 상호 작용하는 방법을 정의하는 형식을 포함합니다. |
| Microsoft.Build.Framework.Profiler | 모두 | 성능 프로파일링을 지원하는 형식을 포함합니다. |
| Microsoft.Build.Framework.XamlTypes | .NET Framework만 | 파일, 규칙 및 기타 원본에서 구문 분석된 XAML 형식을 나타내는 데 사용되는 클래스를 포함합니다. |
| Microsoft.Build.Globbing | 모두 | 와일드카드 처리를 지원하는 클래스를 포함합니다. |
| Microsoft.Build.Globbing.Extensions | 모두 | 와일드카드 처리에 대한 확장을 지원하는 형식을 포함합니다. |
| Microsoft.Build.Graph | 모두 | MSBuild 스위치를 지원하는 형식을 -graph 포함합니다. |
| Microsoft.Build.Logging | 모두 | 빌드 진행률을 기록하는 데 사용되는 형식을 포함합니다. |
| Microsoft.Build.ObjectModelRemoting | 모두 | MSBuild에서 원격을 지원하는 형식을 포함합니다. |
| Microsoft.Build.Tasks | 모두 | MSBuild와 함께 제공되는 모든 작업의 구현을 포함합니다. |
| Microsoft.Build.Tasks.Deployment.Bootstrapper | .NET Framework만 | MSBuild에서 내부적으로 사용하는 클래스를 포함합니다. |
| Microsoft.Build.Tasks.Deployment.ManifestUtilities | .NET Framework만 | MSBuild에서 사용하는 클래스를 포함합니다. |
| Microsoft.Build.Tasks.Hosting | 모두 | MSBuild에서 내부적으로 사용하는 클래스를 포함합니다. |
| Microsoft.Build.Tasks.Xaml | .NET Framework만 | XAML 빌드 작업과 관련된 클래스를 포함합니다. |
| Microsoft.Build.Utilities | 모두 | 사용자 고유의 MSBuild 로거 및 작업을 만드는 데 사용할 수 있는 도우미 클래스를 포함합니다. |
이전 표의 모두 적용 대상 열은 네임스페이스의 형식을 MSBuild API의 .NET Framework 및 .NET Core 버전 모두에서 사용할 수 있음을 의미합니다.
MSBuild 로케이터
MSBuild 로케이터는 컴퓨터에서 MSBuild를 찾는 데 사용할 수 있는 API입니다. 설치된 MSBuild 버전을 찾으려는 경우 빌드 도구 개발에 사용할 수 있습니다.
NuGetPackage는 Microsoft.Build.Locator 에 있으며 참조 설명서는 Microsoft에 있습니다.
MSBuildLocator에 대한 자세한 내용은 MSBuild 버전 찾기 및 사용을 참조하세요.