使用 MSBuild
MSBuild 提供定義完善的可延伸 XML 格式,可用來建立完整描述要建置的專案項目、建置工作和建置組態的專案檔。
一般 MSBuild 考量事項
MSBuild 專案檔,例如 Visual C# .csproj 和 Visual Basic .vbproj 檔案,包含建置時間使用的資料,但也可能包含在設計時間使用的資料。 建置時間資料是使用 MSBuild 基本類型來儲存,包括 Item 元素 (MSBuild) 和 Property 元素 (MSBuild) 。 設計時間資料,這是專案類型和任何相關專案子類型的特定資料,會儲存在為其保留的自由格式 XML 中。
MSBuild 對組態物件沒有原生支援,但會提供條件屬性供指定組態特定資料。 例如:
<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>
有關條件屬性的詳細資訊,請參閱條件式建構。
延伸專案類型的 MSBuild
MSBuild 介面和 API 在未來的 Visual Studio 版本中可能會有所變動。 因此,請務必謹慎使用 Managed Package Framework (MPF) 類別,因為該類別會提供防護功能來避免變更。
Managed Package Framework for Projects (MPFProj) 提供協助程式類別,可用來建立和管理新的專案系統。 您可以在 MPF for Projects - 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 工作來轉換和產生程式碼。 如需詳細資訊,請參閱自訂工具。