命令列上的 MSBuild - C++
一般而言,我們建議您使用 Visual Studio 來設定專案屬性並叫用 MSBuild 系統。 不過,您可以直接從命令提示字元使用 MSBuild 工具。 建置程式是由您可以建立和編輯之專案檔 (.vcxproj) 中的資訊所控制。 專案檔會根據建置階段、條件和事件來指定建置選項。 此外,您可以指定零個或多個命令列 選項 引數。
msbuild.exe [ project_file ] [ options ]
使用 /target (或 /t ) 和 /property (或 /p ) 命令列選項來覆寫專案檔中指定的特定屬性和目標。
專案檔的基本功能是指定目標 ,這是套用至專案的特定作業,以及執行該作業所需的輸入和輸出。 專案檔可以指定一或多個目標,其中包含預設目標。
每個目標都包含一或多個 工作序列。 每個工作都會以包含一個可執行命令的 .NET Framework 類別來表示。 例如, CL 工作 包含 cl.exe 命令。
工作 參數 是類別工作的 屬性,通常代表可執行命令的命令列選項。 例如,工作的 FavorSizeOrSpeed
參數 CL
會對應至 /Os 和 /Ot 編譯器選項。
其他工作參數支援 MSBuild 基礎結構。 例如, Sources
task 參數會指定一組可由其他工作取用的工作。 如需 MSBuild 工作的詳細資訊,請參閱 工作參考 。
大部分的工作都需要輸入和輸出,例如檔案名、路徑和字串、數值或布林參數。 例如,常見的輸入是要編譯的 .cpp 原始程式檔名稱。 重要的輸入參數是指定組建組態和平臺的字串,例如「Debug|Win32」。 輸入和輸出是由元素中包含的 ItemGroup
一或多個使用者定義 XML Item
元素所指定。
專案檔也可以指定使用者定義的 屬性 和 ItemDefinitionGroup
專案 。 屬性和專案表單名稱/值組,可用於組建中的變數。 配對的名稱元件會 定義宏 ,而值元件會 宣告宏值 。 屬性宏是使用 $(name ) 標記法來存取,而專案宏則是使用 %( name ) 標記法來存取。
專案檔中的其他 XML 元素可以測試宏,然後有條件地設定任何宏的值,或控制建置的執行。 宏名稱和常值字串可以串連以產生建構,例如路徑和檔案名。 在命令列上,/property 選項會 設定或覆寫專案屬性。 命令列上無法參考專案。
MSBuild 系統可以有條件地在另一個目標之前或之後執行目標。 此外,系統可以根據目標取用的檔案是否比發出檔案更新,來建置目標。
如需 MSBuild 的詳細資訊,請參閱:
MSBuild 參考 MSBuild 系統的相關資訊。
專案檔架構參考 列出 MSBuild XML 架構元素及其屬性,以及父元素和子項目。 特別請注意 ItemGroup、 PropertyGroup 、 Target 和 Task 元素。
命令列參考 描述您可以搭配 msbuild.exe 使用的命令列引數和選項。
工作參考 描述 MSBuild 工作。 特別請注意,這些工作是 Visual C++特有的: BscMake 工作、 CL 工作 、 CPPClean 工作 、 LIB 工作、 連結 工作、 MIDL 工作、MT 工作、 RC 工作、SetEnv 工作、 VCMessage 工作
本節內容
詞彙 | 定義 |
---|---|
逐步解說:使用 MSBuild 建立 C++ 專案 | 示範如何使用 MSBuild 建立 Visual Studio C++ 專案 。 |
如何:在 MSBuild 專案中使用建置事件 | 示範如何指定在組建的元件階段發生的動作:在建置開始之前;連結步驟開始之前;或建置結束後。 |
如何:將自訂建置步驟新增至 MSBuild 專案 | 示範如何將使用者定義的階段新增至建置順序。 |
如何:將自訂建置工具新增至 MSBuild 專案 | 示範如何將建置工具與特定檔案產生關聯。 |
如何:將自訂工具整合至專案屬性中 | 示範如何將自訂工具的選項新增至專案屬性。 |
如何:修改目標 Framework 和平台工具組 | 示範如何編譯多個架構或工具組的專案。 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應