MSBuild 命令行參考
使用 MSBuild.exe 生成項目或解決方案文件時,可以包含幾個開關來指定過程的各個方面。
MSBuild.exe [Switches] [ProjectFile]
開關 |
縮寫形式 |
描述 |
---|---|---|
/help |
/? 或 /h |
顯示用法信息。 以下命令是一個示例: msbuild.exe /? |
/detailedsummary |
/ds |
在生成日志末尾顯示有關生成的配置以及如何將它們安排到節點中的詳細信息。 |
/ignoreprojectextensions:extensions |
/ignore:extensions |
確定要生成的項目文件時忽略指定擴展名。 使用分號或逗號分隔多個擴展名,如以下示例所示: /ignoreprojectextensions:.vcproj,.sln |
/maxcpucount[:number] |
/m[:number] |
指定生成時要使用的最大並發進程數。 如果不包含此開關,則默認值為 1。 如果包含此開關而沒有指定值,MSBuild 將使用計算機中的處理器總數作為其值。 有關詳細信息,請參閱Building Multiple Projects in Parallel。 下面的示例指示 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: Use the Same Target in Multiple Project Files。 |
/property:name=value |
/p:name=value |
設置或重寫指定項目級屬性,其中 name 是屬性名稱,value 是屬性值。 單獨指定每個屬性,或使用分號或逗號分隔多個屬性,如以下示例所示: /property:WarningLevel=2;OutDir=bin\Debug |
/target:targets |
/t:targets |
在項目中生成指定目標。 單獨指定每個目標,或使用分號或逗號分隔多個目標,如以下示例所示: /target:Resources;Compile 如果使用此開關指定任何目標,則它們會代替項目文件中的 DefaultTargets 特性中的任何目標來運行。 有關詳細信息,請參閱Target Build Order和How To: Specify Which Target to Build First。 目標是一組任務。 有關詳細信息,請參閱MSBuild Targets。 |
/toolsversion:version |
/tv:version |
指定要用於生成項目的工具集的版本,如以下示例所示:/toolsversion:3.5 使用此開關可以生成項目並指定與 Project 元素 (MSBuild) 中指定的版本不同的版本。 有關詳細信息,請參閱Overriding ToolsVersion Settings。 對於 MSBuild 4.5,可以為 version 指定以下值:2.0、3.5 和 4.0。 如果指定 4.0,VisualStudioVersion 生成屬性會指定要使用的子工具集。 有關詳細信息,請參閱 MSBuild Toolset (ToolsVersion) 的“子工具集”一節。 包含用於生成應用程序的任務、目標和工具的工具集。 工具包括編譯器例如 csc.exe 和 vbc.exe。 有關工具集的詳細信息,請參閱MSBuild Toolset (ToolsVersion)、Standard and Custom Toolset Configurations和 MSBuild Multitargeting Overview。 ![]()
工具集版本與目標框架不同,后者是生成項目以其其上運行的 .NET Framework 的版本。 有關詳細信息,請參閱MSBuild Target Framework and Target Platform。
|
/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 [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 |
禁用默認控制台記錄器,不將事件記錄到控制台。 |