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 for Projects - Visual Studio 2013 找到原始程式碼和編譯指示。
項目專用的強積金類別如下:
| 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 class 是 MSBuild 專案的包裝函式。
單一檔案產生器與 MSBuild 工作
單一檔案產生器只能在設計階段存取,但 MSBuild 工作可以在設計階段和建置階段使用。 因此,為了獲得最大的彈性,請使用 MSBuild 工作來轉換和產生程式碼。 如需詳細資訊,請參閱 自訂工具。