適用於 WDK 開發人員的 MSBuild 入門
本節將一些基本的 MSBuild 術語介紹給 WDK 開發人員,這些開發人員熟悉 Build.exe 和 NMake.exe。 本節說明簡單 MSBuild 專案的建構。
與 MSBuild 相關的 Nmake 概念
如果您在 WDK 8) 之前使用 Build.exe 和舊版的 WDK (,您可能熟悉 NMake.exe 使用的術語和概念。
- command - 叫用命令行工具。
- target - 描述具名的命令序列。
- 相依性 - 描述相依於其他目標的目標。
- Nmake 會在指定一或多個目標的 Make 檔案上叫用。 然後,它會以遞歸方式執行所有相依性,然後以遞歸方式執行目標命令。
- Nmake 檔案可以包含其他make檔案,以便進行建置結構的健全管理。
- Nmake也支援建立將取代命令參數的具名變數。
- Nmake 也支援由 Make.exe 本身指派的自動變數,例如,目前目錄或路徑的名稱。
- 目標永遠不會在單一組建期間執行兩次。 執行之後,系統會假設目標已完成其工作,而且即使建置中的後續目標相依於它,也不會再次執行。
MSBuild 概念
C++ 專案的主要 MSBuild 擴展名是.vcxproj。
命令現在稱為 工作,而不只是命令行進程的調用。 相反地,工作是 MSBuild 可用來執行不可部分完成建置作業的可執行程式碼單位。 如需完整的工作清單,請參閱 適用於 Visual C++ 的 MSBuild 工作。
MSBuild 會從其 Common Language Runtime (CLR) 元件匯入工作,如下列範例所示。
<UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />
以特定順序將工作分組在一起,並允許建置程式分成較小的單位。
PropertyGroup 允許使用人類易記格式來定義屬性。 下列範例顯示 PropertyGroup 格式。
<PropertyGroup> <ProductVersion>9.0.30729</ProductVersion> </PropertyGroup>
Item 是 Property 的對象導向變體。 雖然屬性格式為 name/value,但專案格式為名稱/物件,其中物件具有多個屬性。 專案 是 對象的陣列。
屬性 會以 $ (專案 格式) 來參考,而 Items 會以 @ (名稱 格式) 來參考。
ItemGroup 是 Items 的集合。
ItemGroups 通常是要編譯的所有檔案清單。 然後,使用 @ (itemname) 表示法,將檔案集合傳遞給工作。 如需使用專案的詳細資訊,請參閱 MSBuild 專案。
MSBuild 有數個 內建屬性 ,您也可以在專案檔中參考。
如需 MSBuild 和建置工作的詳細資訊,請參閱 MSBuild 概念 和 MSBuild 參考。