Share via


MSBuild 命令列參考

MSBuild.exe 會使用指定的選項,建置指定的專案或方案檔。

MSBuild.exe [Switches] [ProjectFile]

引數

引數

說明

ProjectFile

在專案檔上建置指定的目標。 如果未指定專案檔,MSBuild 就會在目前的工作目錄中尋找副檔名為 "proj" 的檔案來使用。 此引數也會接受 Visual Studio 2005 方案檔。

參數

參數

說明

/help

顯示用法資訊。 /? 或 /h 都是可以接受的選項。 例如:

Msbuild.exe /?

/nologo

隱藏啟始資訊和著作權訊息。

/version

只顯示版本資訊。 /ver 也是可以接受的選項。

@file

從文字檔插入命令列設定。 個別指定每個回應檔 (Response File)。 如需詳細資訊,請參閱 MSBuild 回應檔

/noautoresponse

不要自動納入 MSBuild.rsp 檔。 /noautorsp 也是可以接受的選項。

/target:targets

在此專案中建置這些目標。 請使用分號或逗號區隔多個目標,或是個別指定每個目標。 /t 也是可以接受的選項。 例如:

/target:Resources;Compile

/property:name=value

設定或覆寫這些專案層級的屬性,其中 name 是屬性名稱,而 value 是屬性值。 請使用分號或逗號區隔多個屬性,或是個別指定每個屬性。 /p 也是可以接受的選項。 例如:

/property:WarningLevel=2;OutputDir=bin\Debug

/logger:logger

指定用來記錄 MSBuild 事件的記錄器。 若要指定多個記錄器,請個別指定每個記錄器。

記錄器語法如下:

[LoggerClass,]LoggerAssembly[;LoggerParameters]

LoggerClass 語法是:

[PartialOrFullNamespace.]LoggerClassName

注意事項注意事項
如果組件中正好只有一個記錄器,就不需要指定記錄器類別。

LoggerAssembly 語法是:

{AssemblyName[,StrongName] | AssemblyFile}

記錄器參數是選擇項,並且會確實以您輸入的內容傳遞給記錄器。 例如:

/logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

/distributedlogger:<central logger>*<forwarding logger>

使用此記錄器來記錄 MSBuild 的事件。 若要指定多個記錄器,請個別指定每個記錄器。 (簡短形式 /dl)

<logger> 語法如下:

[<logger class>,]<logger assembly>[;<logger parameters>]

<logger class> 語法如下:

[<partial or full namespace>.]<logger class name>

<logger assembly> 語法如下:{<assembly name>[,<strong name>] | <assembly file>}

<logger parameters> 是選擇項,並且會確實以您輸入的內容傳遞給記錄器。 (簡短形式:/l)

例如:/dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

/consoleloggerparameters:parameters

指定要傳遞給主控台 (Console) 記錄器的參數。 /clp 也是可以接受的選項。 可用的參數如下所示:

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

  • NoSummary:隱藏組建 (Build) 末端顯示的錯誤和警告摘要。

  • NoItemAndPropertyList:隱藏每個專案建置開頭所顯示 diagnostic 詳細等級的項目和屬性清單。

/verbosity:level

在建置記錄檔中顯示這個數量的資訊。 個別的記錄器會根據詳細等級顯示事件。 記錄器也可設為忽略詳細等級設定。

可用的詳細等級如下:q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 /v 也是可以接受的選項。 例如:

/verbosity:quiet

/noconsolelogger

停用預設主控台記錄器,而且不要將事件記錄到主控台。 /noconlog 也是可以接受的選項。

/validate:schema

驗證專案檔,而且成功的話就建置專案。

如果未指定 schema,則依據預設的結構描述驗證專案。

如果已指定 schema,則依據指定的結構描述驗證專案。

/maxcpucount:number

指定參與建置的背景工作處理序數目。 例如 C:\Windows\WinFX\v3.5>msbuild.exe *.proj /maxcpucount:3。 這個範例指示 MSBuild 使用三個 MSBuild.exe 處理序進行建置,這可讓三個專案同時建置。 /m 也是可以接受的選項。

/ignoreprojectextensions:<extensions>

當判斷要建置哪一個專案檔時,將忽略的副檔名清單。 請以分號或逗號分隔多個副檔名。 (簡短形式:/ignore) 範例:/ignoreprojectextensions:.vcproj,.sln

/fileLogger

將建置輸出記錄到目前目錄的單一檔案 ("msbuild.log") 中。 檔案的位置和 fileLogger 的其他參數 (Parameter) 可以藉由加入 "/fileLoggerParameters" 參數 (Switch) 來指定。 (簡短形式:/fl)

/distributedFileLogger

將建置輸出記錄到多個記錄檔,每個 MSBuild 節點各有一個記錄檔。 這些檔案一開始會位於目前的目錄中。 檔案預設名為 "MSBuild<nodeid>.log"。 檔案的位置和 fileLogger 的其他參數 (Parameter) 可以藉由加入 "/fileLoggerParameters" 參數 (Switch) 來指定。

如果記錄檔名稱是使用 fileLoggerParameters 參數指定的,分散式記錄器會使用 fileName 做為範本,將節點 ID 附加到這個 fileName 來建立每個節點的記錄檔。

/fileloggerparameters:<parameters>

指定檔案記錄器和分散式檔案記錄器的參數。 (簡短形式:/flp)

您在參數後面加上識別記錄器的數字,就可以使用多達十個檔案記錄器。 例如,要為警告和錯誤產生不同的記錄檔,請使用 - /flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly

可用參數有:

LogFile - 要寫入建置記錄的記錄檔路徑。 分散式檔案記錄器會使用這個參數做為其記錄檔名稱的前置字元。

Append - 決定要將建置記錄附加到記錄檔或是要覆寫記錄檔。 設定這個參數會將建置記錄附加到記錄檔。 不設定這個參數則會覆寫現有記錄檔的內容。 預設是不附加到記錄檔。

Verbosity - 覆寫詳細資料的預設詳細等級設定。

Encoding - 指定檔案的編碼方式,例如 UTF-8。

您也可以使用任何主控台記錄器參數。 例如:/fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8。

/toolsversion:version

指定要用來建置專案的工具組版本。 此命令可讓您使用不同於 Project 項目 (MSBuild) 中所指定的版本來建置專案。 例如:

C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Debug

version 的有效值如下:2.0、3.0 和 3.5。 如需工具組的詳細資訊,請參閱針對特定 .NET Framework 版本建置

/nodeReuse:<parameters>

啟用或停用重複使用 MSBuild 節點。 參數如下:

True - 節點在建置完成後會保留,以供後續建置重複使用。

False - 節點在建置完成後不保留。 (簡短形式:/nr) 範例:/nr:true

備註

若要傳遞參數至預設主控台記錄器,請先使用 /noconsolelogger 停用記錄器,再使用 /logger 語法指定記錄器。 例如,請使用下列命令列顯示通常只會顯示在診斷詳細等級的效能摘要:

msbuild myproject.csproj /noconsolelogger /l:ConsoleLogger,Microsoft.Build.Engine.dll;performancesummary

範例

下列範例會建置 MyProject.proj 專案的 rebuild 目標。

MSBuild.exe MyProject.proj /t:rebuild

您可以使用 MSBuild.exe 執行更多複雜的建置。 例如,用來建置方案中特定專案的特定目標。 下列範例會重建專案 NotInSolutionFolder,並且清除 NewFolder 方案資料夾中的專案 InSolutionFolder。

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

請參閱

其他資源

MSBuild 參考