共用方式為


適用於 WDK 開發人員的 MSBuild 入門

本節會向熟悉 Build.exe 和 NMake.exe的 WDK 開發人員介紹一些基本的 MSBuild 術語。 本節示範簡單 MSBuild 專案的建構。

與 MSBuild 相關的 Nmake 概念

如果您已使用 WDK 的 Build.exe 和舊版 (WDK 8 之前) ,您可能熟悉 NMake.exe 使用的術語和概念。

  • command - 叫用命令列工具。
  • target - 描述具名的命令序列。
  • 相依性 - 描述相依於其他目標的目標。
  • Nmake 會在指定一或多個目標的 make 檔案上叫用。 然後,它會遞迴執行所有相依性,然後執行目標的命令。
  • Nmake 檔案可以包含其他 make 檔案,以健全地管理組建結構。
  • Nmake 也支援建立具名變數,以取代命令的參數。
  • Nmake 也支援 Make.exe 本身指派的自動變數,例如目前目錄或路徑的名稱。
  • 目標在單一建置期間永遠不會執行兩次。 執行之後,會假設目標已完成其工作,且不會再次執行,即使建置中的後續目標相依於它也一樣。

MSBuild 概念

  • C++ 專案的主要 MSBuild 副檔名是 .vcxproj。

  • 命令現在稱為 任務,它們不僅僅是命令列進程的呼叫。 相反地,工作是 MSBuild 可用來進行原子性建置操作的可執行程式碼單位。 如需工作的完整清單,請參閱 Visual C++ 特有的 MSBuild 工作

  • MSBuild 會使用 UsingTask 元素從其 Common Language Runtime (CLR) 元件匯入工作,如下列範例所示。

    <UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />
    
  • 目標會以特定順序將任務分組在一起,並允許將建置程式分割成較小的單元。

  • PropertyGroup 允許使用人性易記的格式來定義屬性。 下列範例顯示 PropertyGroup 格式。

    <PropertyGroup>
      <ProductVersion>9.0.30729</ProductVersion>
    </PropertyGroup>
    
  • ItemProperty 的物件導向變體。 雖然屬性格式是名稱/值,但項目格式是名稱/對象,其中對象具有多個屬性。 項目 是物件的陣列。

  • 屬性以 格式 $(project) 引用,而項目以 格式 @(name) 引用。

  • ItemGroup 是 Items 的集合

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

  • MSBuild 有許多 內建屬性 ,您也可以在專案檔中參考這些屬性。

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