使用 MSBuild
MSBuild 會提供完整定義的 「 可延伸的 XML 格式,來建立完整地描述專案項目,要先建置、 建置工作,以及建置組態的專案檔案。
對於以 MSBuild 為基礎的語言專案系統端對端範例,請參閱 IronPython 範例深度剖析,在Visual Studio 的擴充性範例。
一般 MSBuild 考量
MSBuild 專案檔,例如, Visual C# .csproj 和Visual Basic .vbproj 檔,包含在建置階段,但也可以包含用在設計階段資料的資料。 在建置階段資料會儲存使用 MSBuild 基本項目,包括Item 項目 (MSBuild)和Property 項目 (MSBuild)。 設計階段資料,也就是針對專案類型和任何相關的專案子類型的資料,會儲存在任意 XML 保留給它。
MSBuild 沒有設定物件的原生支援,但不會提供條件式屬性來指定要設定特定的資料。 例如:
<OutputDir Condition="'$(Configuration)'=="release'">Bin\MyReleaseConfig</OutputDir>
如需有關條件式屬性的詳細資訊,請參閱MSBuild 條件式建構。
擴充 MSBuild 專案類型
MSBuild 介面與 Api 會在未來版本的Visual Studio。因此,最好使用受管理的封裝 (MPF) 架構類別,因為它們提供遮蔽處於防止修改。
管理套件架構專案 (MPFProj) 提供建立和管理新的專案系統的協助程式類別。 您可以找到來源的程式碼和編譯的指示,在專案-Visual Studio 2010 MPF。
專案特定的 MPF 類別如下所示:
類別 |
實作 |
---|---|
Microsoft.VisualStudio.Package.ProjectNode |
|
Microsoft.VisualStudio.Package.ProjectFactory |
|
Microsoft.VisualStudio.Package.HierarchyNode |
|
Microsoft.VisualStudio.Package.ProjectConfig |
|
Microsoft.VisualStudio.Package.SettingsPage |
Microsoft.VisualStudio.Package.ProjectElement類別是 MSBuild 項目的包裝函式。
單一檔案產生器 vs。MSBuild 工作
單一檔案產生器會在執行階段時存取,但是 MSBuild 工作可在設計階段和在建置階段。 最大的彈性,因此,使用 MSBuild 工作來轉換,並產生程式碼。 如需詳細資訊,請參閱 專案項目 (Visual Studio SDK)。