MSBuild 命令列參考
當您使用 MSBuild.exe 建置專案或方案檔時,可以包含數個參數指定處理序的各方面。
MSBuild.exe [Switches] [ProjectFile]
引數
引數 |
描述 |
---|---|
ProjectFile |
在您指定的專案檔建立目標。 如果您未指定專案檔, MSBuild 會搜尋目前工作目錄為「proj」結尾和使用檔案的副檔名。 您可以為這個引數可以指定 Visual Studio 方案檔。 |
參數
參數 |
簡短形式 |
描述 |
---|---|---|
/help |
/? 或 /h |
顯示使用方式資訊。 以下命令是範例: msbuild.exe /? |
/detailedsummary |
/ds |
顯示詳細資訊中所建置的組態,以及如何建置記錄結尾排程至節點。 |
/ignoreprojectextensions: extensions |
/ignore: extensions |
請忽略指定的擴充功能,在決定時建置的專案檔。 請使用分號或逗號分隔多個副檔名,,如下列範例所示: /ignoreprojectextensions:.vcproj,.sln |
/maxcpucount [:number] |
/m [:number] |
在建置時,指定並行處理序最大數目使用。 如果您未包含此參數,則預設值為 1。 如果您包含了這個參數,但未指定值, MSBuild 會使用由處理器決定數電腦。 如需詳細資訊,請參閱使用 MSBuild 同時建置多個專案。 使用三個 MSBuild 處理序,下列範例指示 MSBuild 建置,允許三個專案同時建置: msbuild myproject.proj /maxcpucount:3 |
/noautoresponse |
/noautorsp |
不要自動包含任何 MSBuild.rsp 檔。 |
/nodeReuse:value |
/nr:value |
啟用或停用 MSBuild 節點重複使用。 您可以指定下列各值:
節點對應於執行的專案。 如果包含 /maxcpucount 參數,多個節點可以同時執行。 |
/nologo |
不顯示程式啟始資訊或著作權訊息。 |
|
/preprocess [:filepath] |
/pp [:filepath] |
在建置期間,透過內嵌要匯入的檔案建立單一,彙總專案檔,而其界限標記。 您可以使用這個參數會從檔案匯入的地方,,以及更容易判斷哪些檔案匯入,檔案會建置。 當您使用這個參數時,專案不會建立。 如果您指定 filepath,彙總專案檔輸出至檔案。 否則,輸出會顯示在主控台視窗。 如需如何使用 Import 項目的資訊插入專案檔到另一個專案檔,請參閱 Import 項目 (MSBuild) 和 HOW TO:使用多個專案檔內相同的目標。 |
/property:name=value。 |
/p:name=value。 |
設定或覆寫指定的專案層級屬性, name 是屬性名稱,而 value 是屬性值。 個別指定每個屬性或使用分號或逗號分隔多個屬性,,如下列範例所示: /property:WarningLevel=2;OutputDir=bin\Debug |
/target:targets |
/t:targets |
建置指定的目標專案。 個別指定每個目標或使用分號或逗號分隔多個目標,,如下列範例所示: /target:Resources;Compile 使用這個參數,如果您指定任何目標,它們執行而不是在 DefaultTargets 屬性的所有目標專案檔。 如需詳細資訊,請參閱目標建置順序與HOW TO:指定要優先建置的目標。 目標是工作群組。 如需詳細資訊,請參閱MSBuild 目標。 |
/toolsversion:version |
/tv:version |
如下列範例所示,指定工具組版本使用建立專案: /toolsversion:3.5 使用這個參數,您可以建立專案並指定與版本不同 Project 項目 (MSBuild)中所指定的版本。 如需詳細資訊,請參閱覆寫 ToolsVersion 設定。 如需 MSBuild 4.5,您可以為 version指定下列值:2.0、3.5 和 4.0,。 如果您指定 4.0, VisualStudioVersion 建置屬性指定要使用的子工具組。 子 Toolset 區分 MSBuild Toolset (ToolsVersion)(如需詳細資訊,請參閱 Toolset 包含工作、用來建立應用程式的目標和工具。 工具包含編譯器 (例如 csc.exe 和 vbc.exe。 如需工具組的詳細資訊,請參閱 MSBuild Toolset (ToolsVersion)、 標準和自訂工具組的組態和 MSBuild 多目標概觀。
注意事項
工具組版本與目標 Framework,是 .NET Framework 版本建置專案時執行。如需詳細資訊,請參閱MSBuild 目標 Framework 和目標平台。
|
/validate:[schema] |
/val [schema] |
請驗證專案檔,則為,如果驗證成功,建立專案。 如果沒有指定 schema,專案驗證依據預設的結構描述。 如果您指定 schema,專案驗證對您指定的結構描述。 設定如下範例: /validate:MyExtendedBuildSchema.xsd |
/verbosity:level |
/v:level |
在建置記錄檔中指定的資訊來顯示。 每個記錄器顯示事件以詳細等級的層級您該記錄器集合。 您可以指定下列詳細等級: q[uiet]、 m[inimal]、 n[ormal]、 d[etailed]和 diag[nostic]。 設定如下範例: /verbosity:quiet |
/version |
/ver |
只顯示版本資訊。 專案不會建立。 |
@file |
插入命令列參數從文字檔。 如果您有多個檔案,您可以個別指定它們。 如需詳細資訊,請參閱MSBuild 回應檔。 |
記錄器的參數
參數 |
簡短形式 |
描述 |
---|---|---|
/consoleloggerparameters:parameters |
/clp:parameters |
透過指定主控台記錄器,顯示在主控台視窗的組建資訊的參數。 您可以指定下列參數:
請使用分號或逗號分隔多個參數,,如下列範例所示: /consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal |
/distributedFileLogger |
/dfl |
記錄每個 MSBuild 節點建置輸出至檔案。 這些檔案一開始會位於目前的目錄中。 根據預設,檔案會命名為 MSBuildNodeId.log」。 您可以使用 /fileLoggerParameters 參數指定為 fileLogger 檔案和其他參數的位置。 使用 /fileLoggerParameters 參數,如果您有一個記錄檔,分散式記錄器會使用該名稱做為範本並附加節點 ID 對應至該名稱,在建立每個節點的記錄檔。 |
/distributedlogger:central logger*forwarding logger |
/dl:central logger*forwarding logger |
MSBuild 的記錄事件,將不同的記錄器執行個體對每一個節點。 若要指定多個記錄器,請個別指定每個記錄器。 您使用記錄器語法指定記錄器。 如需記錄器語法,請參閱下面 /logger 參數。 下列範例顯示如何使用這個參數: /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll |
/fileLogger數字] [ |
/fl [number] |
將組建輸出記錄到在目前目錄中的單一檔案。 如果沒有指定 number,輸出檔案將會命名為 msbuild.log。 如果您指定 number,輸出檔案將會命名為nmsbuild .log,其中 n 是 number。 Number 可以是從 1 的一個數字為 9。 您可以使用 /fileLoggerParameters 參數指定為 fileLogger 檔案和其他參數的位置。 |
/fileloggerparameters: [數字] parameters |
/flp: numberparameters] [ |
指定檔案記錄器和分散式檔案記錄器指定任何額外的參數。 這個參數會表示對應filelogger[/number] 參數存在。 Number 可以是從 1 的一個數字為 9。 您可以使用 /consoleloggerparameters清單中的所有參數。 您也可以使用一或多個下列參數:
下列範例會產生分隔警告和錯誤的記錄檔: /flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly 下列範例顯示其他可能性: /fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8 /flp:Summary;Verbosity=minimal;LogFile=msbuild.sum /flp1:warningsonly;logfile=msbuild.wrn /flp2:errorsonly;logfile=msbuild.err |
/logger:logger |
/l:logger |
指定用來記錄 MSBuild 事件的記錄器。 若要指定多個記錄器,請個別指定每個記錄器。 為 logger使用下列語法: [LoggerClass,]LoggerAssembly[;LoggerParameters] 為 LoggerClass使用下列語法: [PartialOrFullNamespace.]LoggerClassName 如果組件剛好包含一個記錄器,您不需要指定記錄器類別。 為 LoggerAssembly使用下列語法: {AssemblyName[,StrongName] |AssemblyFile} 因為您輸入它們,記錄器參數是選擇性的和正確地傳遞至記錄器。 下列範例會使用 /logger 參數。 /logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML |
/noconsolelogger |
/noconlog |
停用預設主控台記錄器和不要將事件記錄到主控台。 |
範例
下列範例會建置 MyProject.proj 專案的 rebuild 目標。
MSBuild.exe MyProject.proj /t:rebuild
您可以使用 MSBuild.exe 執行更多複雜的建置。 例如,用來建置方案中特定專案的特定目標。 下列範例會重建專案 NotInSolutionFolder 並清除專案 InSolutionFolder,在 NewFolder 方案資料夾。
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean