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) 和如何:使用多個專案檔內相同的目標。 |
||
/property:name=value |
/p:name=value |
設定或覆寫所指定的專案層級屬性,其中 name 是屬性名稱,而 value 是屬性值。 分別指定每個屬性,或使用分號或逗號分隔多個屬性,如下列範例所示: /property:WarningLevel=2;OutDir=bin\Debug |
||
/target:targets |
/t:targets |
在專案中建置指定的目標。 分別指定每個目標,或使用分號或逗號分隔多個目標,如下列範例所示: /target:Resources;Compile 如果您使用這個參數指定任何目標,便會執行這些目標,而不是專案檔中 DefaultTargets 屬性的任何目標。 如需詳細資訊,請參閱目標建置順序與如何:指定要優先建置的目標。 目標是一組工作。 如需詳細資訊,請參閱MSBuild 目標。 |
||
/toolsversion:version |
/tv:version |
指定用來建置專案的工具組版本,如下列範例所示:/toolsversion:3.5 藉由使用這個參數,您可以建置專案,並指定一個有別於Project 項目 (MSBuild) 中所指定的版本。 如需詳細資訊,請參閱覆寫 ToolsVersion 設定。 若是 MSBuild 4.5,您可以為 version 指定下列值:2.0、3.5 和 4.0。 如果您指定 4.0,則 VisualStudioVersion 組建屬性會指定要使用哪個子工具組。 如需詳細資訊,請參閱MSBuild Toolset (ToolsVersion) 的<小工具組>一節。 工具組包含用於建置應用程式的工作、目標和工具。 工具包括編譯器,例如 csc.exe 和 vbc.exe。 如需有關工具組的詳細資訊,請參閱 MSBuild Toolset (ToolsVersion)、標準和自訂工具組的組態及 MSBuild 多目標概觀。
|
||
/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 參數來命名記錄檔,分散式記錄器便會使用該名稱做為範本,並在為每個節點建立記錄檔時,將節點識別碼附加至該名稱。 |
/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 [number] |
/fl[number] |
在目前目錄中將組建輸出記錄至單一檔案。 如果您沒有指定 number,輸出檔案就會命名為 msbuild.log。 如果您指定 number,則輸出檔案會命名為 msbuildn.log,其中 n 是 number。 Number 可以是從 1 到 9 的數字。 您可以使用 /fileLoggerParameters 參數來指定檔案位置及 fileLogger 的其他參數。 |
/fileloggerparameters:[number] parameters |
/flp:[ number] parameters |
指定檔案記錄器和分散式檔案記錄器的任何額外參數。 這個參數的目前狀態表示對應的 /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