MSBuild API 사용
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.Core 어셈블리를 포함합니다. |
또한 NuGet은 더 이상 사용되지 않는 레거시 어셈블리인 Microsoft.Build.Engine을 호스트합니다.
MSBuild API의 다양한 버전이 있으며, 버전 15 및 16의 경우 NuGet 패키지에 두 가지 형식의 어셈블리가 있습니다. 하나는 .NET Framework로 컴파일되며 다른 하나는 .NET Framework API 표면에 속한 .NET Core로 컴파일됩니다. MSBuild의 .NET Core 버전은 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 | 모두 | -graph MSBuild 스위치를 지원하는 형식을 포함합니다. |
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 버전에서 둘 다 네임스페이스의 형식을 사용할 수 있음을 의미합니다.