共用方式為


適用於 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>
    
  • ItemProperty 的對象導向變體。 雖然屬性格式為 name/value,但專案格式為名稱/物件,其中物件具有多個屬性。 專案 是 對象的陣列。

  • 屬性 會以 $ (專案 格式) 來參考,而 Items 會以 @ (名稱 格式) 來參考。

  • ItemGroup 是 Items 的集合

  • ItemGroups 通常是要編譯的所有檔案清單。 然後,使用 @ (itemname) 表示法,將檔案集合傳遞給工作。 如需使用專案的詳細資訊,請參閱 MSBuild 專案

  • MSBuild 有數個 內建屬性 ,您也可以在專案檔中參考。

  • 如需 MSBuild 和建置工作的詳細資訊,請參閱 MSBuild 概念MSBuild 參考