Menggunakan MSBuild

MSBuild menyediakan format XML yang terdefinisi dengan baik dan dapat diperluas untuk membuat file proyek yang sepenuhnya menjelaskan item proyek yang akan dibangun, membangun tugas, dan membangun konfigurasi.

Pertimbangan MSBuild Umum

File proyek MSBuild, misalnya, file Visual C# .csproj dan Visual Basic .vbproj, berisi data yang digunakan pada waktu build, tetapi juga dapat berisi data yang digunakan pada waktu desain. Data build-time disimpan menggunakan primitif MSBuild, termasuk Elemen Item (MSBuild) dan Elemen Properti (MSBuild). Data saat perancangan, yang merupakan data khusus untuk jenis proyek dan subjenis proyek terkait, disimpan dalam XML bentuk bebas yang memang disediakan untuk itu.

MSBuild tidak memiliki dukungan asli untuk objek konfigurasi, tetapi menyediakan atribut bersyarkat untuk menentukan data khusus konfigurasi. Contohnya:

<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>

Untuk informasi selengkapnya tentang atribut kondisional, lihat Konstruksi Kondisional.

Memperluas MSBuild untuk Jenis Proyek Anda

Antarmuka dan API MSBuild dapat berubah dalam versi Visual Studio yang akan datang. Oleh karena itu, sangat bijaksana untuk menggunakan kelas kerangka kerja paket terkelola (MPF) karena menyediakan perisai dari perubahan.

Kerangka Kerja Paket Terkelola untuk Proyek (MPFProj) menyediakan kelas pembantu untuk membuat dan mengelola sistem proyek baru. Anda dapat menemukan kode sumber dan petunjuk kompilasi di MPF for Projects - Visual Studio 2013.

Kelas MPF khusus proyek adalah sebagai berikut:

Class Implementation
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 kelas adalah pembungkus untuk item MSBuild.

Generator File Tunggal vs. Tugas MSBuild

Generator file tunggal hanya dapat diakses pada waktu desain, tetapi tugas MSBuild dapat digunakan pada waktu desain dan waktu build. Oleh karena itu, untuk fleksibilitas maksimum, gunakan tugas MSBuild untuk mengubah dan menghasilkan kode. Untuk informasi selengkapnya, lihat Alat Kustom.