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 節點重複使用。 您可以指定下列各值:

  • True。 節點中,在組建完成之後,以便後續組建可能使用它們 (預設值)。

  • False。 在組建完成之後,節點不保留。

節點對應於執行的專案。 如果包含 /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 回應檔

ms164311.collapse_all(zh-tw,VS.110).gif記錄器的參數

參數

簡短形式

描述

/consoleloggerparameters:parameters

/clp:parameters

透過指定主控台記錄器,顯示在主控台視窗的組建資訊的參數。 您可以指定下列參數:

  • PerformanceSummary。 顯示在工作、目標和專案所花費的時間。

  • 摘要。 顯示錯誤和警告摘要放在結尾。

  • NoSummary。 不要顯示錯誤和警告摘要放在結尾。

  • ErrorsOnly。 只會顯示錯誤。

  • WarningsOnly。 只會顯示警告。

  • NoItemAndPropertyList。 不要在每個專案啟動建置時會出現的項目和屬性的清單,如果詳細等級設定為 diagnostic

  • ShowCommandLine。 顯示 TaskCommandLineEvent 訊息。

  • ShowTimestamp。 顯示時間戳記做為前置詞對所有訊息。

  • ShowEventId。 顯示每個已啟動事件、完成的事件和訊息的事件 ID。

  • ForceNoAlign。 不要將文字至主控台緩衝區的大小。

  • DisableConsoleColor。 為所有記錄訊息使用預設主控台色彩。

  • DisableMPLogging。 在非多處理器模式下執行時,請停用輸出多處理器記錄模式。

  • EnableMPLogging。 啟用多處理器記錄模式,即使在非多處理器模式下。 預設情況下記錄模式開啟。

  • 詳細等級。 覆寫設定為這個記錄器的 /verbosity

請使用分號或逗號分隔多個參數,,如下列範例所示:

/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清單中的所有參數。 您也可以使用一或多個下列參數:

  • 記錄檔。 建置記錄檔中寫入的記錄檔路徑。 分散式檔案記錄器給這個路徑前面對其記錄檔名稱。

  • 附加。 判斷建置記錄是否附加到記錄檔或覆寫它。 設定這個參數會將建置記錄附加到記錄檔。 如果您未設定參數時,現有的記錄檔內容覆寫。

  • 輸入。 指定檔案的編碼方式 (例如, UTF-8、Unicode 或 ASCII)。

下列範例會產生分隔警告和錯誤的記錄檔:

/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

請參閱

參考

一般 MSBuild 專案屬性

其他資源

MSBuild 參考