MSBuild 사용
MSBuild는 빌드할 프로젝트 항목, 빌드 작업, 빌드 구성을 완전히 설명하는 프로젝트 파일을 만들기 위한 잘 정의되고 확장 가능한 XML 형식을 제공합니다.
일반 MSBuild 고려 사항
MSBuild 프로젝트 파일(예: Visual C# .csproj 및 Visual Basic .vbproj 파일)은 빌드 타임에 사용되는 데이터를 포함하지만 디자인 타임에 사용되는 데이터도 포함할 수도 있습니다. 빌드 타임 데이터는 항목 요소(MSBuild) 및 속성 요소(MSBuild)를 포함한 MSBuild 기본 요소를 사용하여 저장됩니다. 프로젝트 형식 및 모든 관련 프로젝트 하위 형식과 관련된 데이터인 디자인 타임 데이터는 예약된 자유 형식 XML에 저장됩니다.
MSBuild는 구성 개체에 대한 기본 지원은 제공하지 않지만 구성별 데이터를 지정하기 위한 조건부 특성은 제공합니다. 예시:
<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>
조건부 특성에 대한 자세한 내용은 조건부 구문을 참조하세요.
프로젝트 형식에 대한 MSBuild 확장
MSBuild 인터페이스 및 API는 이후 버전의 Visual Studio에서 변경될 수 있습니다. 따라서 MPF(관리 패키지 프레임워크) 클래스는 변경 사항을 방지하므로 사용하는 것이 좋습니다.
MPFProj(프로젝트용 관리 패키지 프레임워크)는 새 프로젝트 시스템을 만들고 관리하기 위한 도우미 클래스를 제공합니다. 프로젝트용 MPF - Visual Studio 2013에서 소스 코드와 컴파일 지침을 찾을 수 있습니다.
프로젝트별 MPF 클래스는 다음과 같습니다.
클래스 | 구현 |
---|---|
Microsoft.VisualStudio.Package.ProjectNode |
IVsProject3 IVsCfgProvider2 IPersistFileFormat IVsSolutionEvents |
Microsoft.VisualStudio.Package.ProjectFactory |
IVsProjectFactory |
Microsoft.VisualStudio.Package.HierarchyNode |
IVsHierarchy |
Microsoft.VisualStudio.Package.ProjectConfig |
IVsCfg IVsProjectCfg IVsBuildableProjectCfg IVsDebuggableProjectCfg |
Microsoft.VisualStudio.Package.SettingsPage |
IPropertyPageSite |
Microsoft.VisualStudio.Package.ProjectElement
클래스는 MSBuild 항목에 대한 래퍼입니다.
단일 파일 생성기 및 MSBuild 작업
단일 파일 생성기는 디자인 타임에만 액세스할 수 있지만 MSBuild 작업은 디자인 타임 및 빌드 타임에 사용할 수 있습니다. 따라서 유연성을 극대화하려면 MSBuild 작업을 사용하여 코드를 변환하고 생성합니다. 자세한 내용은 사용자 지정 도구를 참조하세요.