[研究][ASP.NET]MSBuild 17.3.1 語法參數說明
2022-09-14
如需詳細資訊,請參閱 https://aka.ms/msbuild/docs
MSBuild 17.3.1 大約是搭配 Visual Studio 2022 v17.3.1 版。
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#
********************************************************************************
C:\Users\Administrator>msbuild /?
MSBuild version 17.3.1+2badb37d1 for .NET Framework
語法: MSBuild.exe [選項] [專案檔 | 目錄]
描述: 在專案檔中建置指定的目標。若未
指定專案檔,MSBuild 會從目前的
工作目錄中,搜尋副檔名結尾為
"proj" 的檔案,並使用該檔案。
如有指定目錄,MSBuild 會從該目錄
搜尋專案檔。
參數: 請注意,您可以同時使用 "-switch"、"/switch",
以及 "--switch" 來指定參數。
-target:<目標> 在此專案中建置這些目標。請用分號或
逗號區隔多個目標,或是個別指定
每一個目標。(簡短形式: -t)
範例:
-target:Resources;Compile
-property:<n>=<v> 設定或覆寫這些專案層級的屬性。<n> 是
屬性名稱,而 <v> 則是屬性值。請使用
分號或逗號區隔多個屬性,
或是個別指定每一個屬性。(簡短形式: -p)
範例:
-property:WarningLevel=2;OutDir=bin\Debug\
-maxCpuCount[:n] 指定要一同建置的並行處理序
最大數目。如果未使用參數,會使用
預設值 1。如果使用了參數但未提供值,
MSBuild 會使用電腦上的最大
處理器數目。(簡短形式: -m[:n])
-toolsversion:<版本>
建置期間所使用的 MSBuild 工具組 (工作、目標等)
版本。此版本將會覆寫
個別專案所指定的版本。(簡短形式:
-tv)
範例:
-toolsVersion:3.5
-verbosity:<層級> 在事件記錄檔中顯示此數量的資訊。
可用的詳細程度層級為: q[uiet]、m[inimal]、
n[ormal]、d[etailed] 和 diag[nostic]。(簡短形式: -v)
範例:
-verbosity:quiet
-consoleLoggerParameters:<參數>
主控台記錄器的參數。(簡短形式: -clp)
可用的參數為:
PerformanceSummary--顯示工作、目標
及專案所花費的時間。
Summary--結束時顯示錯誤與警告摘要。
NoSummary--結束時不顯示錯誤
與警告摘要。
ErrorsOnly--只顯示錯誤。
WarningsOnly--只顯示警告。
NoItemAndPropertyList--不在每個專案開始建置時,
顯示項目與屬性清單。
ShowCommandLine--顯示 TaskCommandLineEvent 訊息
ShowTimestamp--在所有訊息開頭顯示
時間戳記。
ShowEventId--顯示已開始之事件、已完成之事件
以及訊息的事件識別碼
ForceNoAlign--不將文字調整成主控台
緩衝區的大小
DisableConsoleColor--為所有記錄訊息使用預設的
主控台色彩。
DisableMPLogging-- 在非多處理器模式下執行時,
停用輸出的多處理器
記錄樣式。
EnableMPLogging--在非多處理器模式下執行時,
啟用多處理器記錄樣式。
此記錄樣式預設為啟用。
ForceConsoleColor--即使主控台不支援 ANSI 主控台色彩,
也一律使用該色彩
Verbosity--覆寫此記錄器的 -verbosity
設定。
範例:
-consoleLoggerParameters:PerformanceSummary;NoSummary;
Verbosity=minimal
-noConsoleLogger 停用預設主控台記錄器,而且不將事件記錄
到主控台。(簡短形式: -noConLog)
-fileLogger[n] 將建置輸出記錄到檔案。
根據預設,此檔案位於目前的目錄中,
且名為 "msbuild[n].log"。來自所有節點的事件會合併成
單一記錄。透過新增 "-fileLoggerParameters[n]" 參數,
可以指定 fileLogger 的檔案位置及
其他參數。
如果 "n" 存在,可以是 1-9 之間的數字,
最多允許連結 10 個檔案記錄器。(簡短形式: -fl[n])
-fileLoggerParameters[n]:<參數>
為檔案記錄器提供任何額外的參數。
有這個參數意味著有
相對應的 -fileLogger[n] 參數。
若出現 "n",可以是 1 到 9 的數字。
所有分散式檔案記錄器也都會使用 -fileLoggerParameters,
請參閱 -distributedFileLogger 的說明。
(簡短形式: -flp[n])
也有針對主控台記錄器列出的相同參數。
一些其他的可用參數為:
LogFile--寫入建置記錄的
記錄檔路徑。
Append--決定是否要將建置記錄附加到
記錄檔或是覆寫記錄檔。
設定此參數會將建置記錄附加到記錄檔;
不設定此參數則會覆寫
現有記錄檔的內容。
預設不會附加到記錄檔。
Encoding--指定檔案的編碼方式,
例如 UTF-8、Unicode 或 ASCII
預設詳細程度為「詳細」。
範例:
-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
-distributedLogger:<中央記錄器>*<轉寄記錄器>
使用此記錄器可記錄 MSBuild 的事件,
同時為每個節點附加一個不同的記錄器執行個體。
若要指定多個記錄器,請各別指定每個記錄器。
(簡短形式 -dl)
<記錄器> 語法為:
[<類別>,]<組件>[,<選項>][;<參數>]
<記錄器類別> 語法為:
[<一部分或完整的命名空間>.]<記錄器類別名稱>
<記錄器組件> 語法為:
{<組件名稱>[,<strong name>] | <組件檔案>}
記錄器選項會指定 MSBuild 建立記錄器的方式。
<記錄器參數> 是選擇性參數,其會依您輸入的內容,
完全一樣地傳遞到記錄器。(簡短形式: -l)
範例:
-dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
-dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll
-distributedFileLogger
將組建輸出記錄到多個記錄檔,每個 MSBuild
節點一個記錄檔。這些檔案的初始位置,就是目前
的目錄。根據預設,這些檔案稱為
"MSBuild<節點識別碼>.log"。檔案的位置和 fileLogger 的
其他參數可以用加入 "-fileLoggerParameters"
參數的方式指定。如果記錄檔名稱透過
fileLoggerParameters 參數設定,則分散式記錄器
將會使用 fileName 做為範本,
並對此 fileName 附加
節點識別碼,來建立每個節點的記錄檔。
-logger:<記錄器> 使用此記錄器可記錄 MSBuild 的事件。
若要指定多個記錄器,請各別指定每個記錄器。
<記錄器> 語法為:
[<類別>,]<組件>[,<選項>][;<參數>]
<記錄器類別> 語法為:
[<一部分或完整的命名空間>.]<記錄器類別名稱>
<記錄器組件> 語法為:
{<組件名稱>[,<strong name>] | <組件檔案>}
記錄器選項會指定 MSBuild 建立記錄器的方式。
<記錄器參數> 是選擇性參數,其會依您輸入的內容,
完全一樣地傳遞到記錄器。(簡短形式: -l)
範例:
-logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
-logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML
-binaryLogger[:[LogFile=]output.binlog[;ProjectImports={None,Embed,ZipFile}]]
將所有建置事件序列化成壓縮的二進位檔案。
根據預設,此檔案存放在目前的目錄下,並會命名為
「msbuild.binlog」。此二進位記錄檔是
建置程序的詳細描述,之後可用於重建文字記錄,
以及供其他分析工具使用。二進位記錄檔
的大小通常會比大部分的詳細文字
診斷層級記錄小 10-20 倍,但包含了更多資訊。
(簡短形式: -bl)
根據預設,二進位記錄器會收集專案檔的
原始程式文字,包括在建置期間遇到的
所有匯入專案及目標檔案。選擇性的 ProjectImports 參數
會控制此行為:
ProjectImports=None - 不收集專案
匯入。
ProjectImports=Embed - 在記錄檔中內嵌
專案匯入。
ProjectImports=ZipFile - 將專案檔儲存到
output.projectimports.zip,
其中輸出的名稱與
二進位記錄檔名稱相同。
ProjectImports 的預設設定為 Embed。
注意: 記錄器不會收集非 MSBuild 的來源檔案,
例如 .cs、.cpp 等。
將 .binlog 檔案傳遞到 msbuild.exe 作為引數而非
專案/解決方案,即可加以「播放」。
其他記錄器會收到記錄檔中包含的資訊,
就如同原始組建發生時的情況。
若要深入閱讀二進位記錄檔及其使用方式,請前往:
https://aka.ms/msbuild/binlog
範例:
-bl
-bl:output.binlog
-bl:output.binlog;ProjectImports=None
-bl:output.binlog;ProjectImports=ZipFile
-bl:..\..\custom.binlog
-binaryLogger
-warnAsError[:code[;code2]]
要視為錯誤的警告碼清單。如有多個警告碼,
請使用分號或逗點加以分隔。若要將所有警告
視為錯誤,請使用參數,但不要指定值。
(簡短形式: -err[:c;[c2]])
範例:
-warnAsError:MSB4130
當警告視為錯誤時,目標會將其
視為警告繼續執行,但整個建置
作業會失敗。
-warnNotAsError[:code[;code2]]
要視為不視為錯誤的警告碼清單。
使用分號或逗號分隔
多個警告碼。如果 -warnaserror 沒有作用
未設定切換參數。
範例:
-warnNotAsError:MSB3026
-warnAsMessage[:code[;code2]]
要視為低重要性訊息的警告碼清單。
如有多個警告碼,請使用分號或逗點
加以分隔。
(Short form:-noWarn[:c;[c2]])
範例:
-warnAsMessage:MSB3026
-validate 依據預設的結構描述驗證專案。(簡短
形式: -val)
-validate:<結構描述> 依據指定的結構描述驗證專案。(簡短
形式: -val)
範例:
-validate:MyExtendedBuildSchema.xsd
-ignoreProjectExtensions:<副檔名>
決定要建置哪些專案檔時,會忽略的
副檔名清單。請用分號或逗號
分隔多個副檔名。
(簡短形式: -ignore)
範例:
-ignoreProjectExtensions:.sln
-nodeReuse:<參數>
啟用或停用 MSBuild 節點的重複使用。
參數為:
True --節點在建置完成後將會保留,
並且將由後續的建置重複使用 (預設)
False--節點在建置完成後將不會保留
(簡短形式: -nr)
範例:
-nr:true
-preprocess[:file]
藉由內嵌所有會在建置期間匯入的檔案
建立單一的彙總專案檔,
並標記這些檔案的界限。要找出匯入的檔案有哪些、
來自何處,
以及檔案將對建置有哪些貢獻時,
這會很實用。根據預設,輸出會寫入
主控台視窗。如有提供輸出檔的路徑,
則會改用該路徑。
(簡短形式: -pp)
範例:
-pp:out.txt
-targets[:file]
列印可用目標的清單,但不執行
實際建置流程。根據預設,會將輸出寫入
主控台視窗。若有提供輸出檔案的路徑
則會改用該路徑。
(簡短形式: -ts)
例如
-ts:out.txt
-detailedSummary[:True|False]
在建置結束時顯示詳細資訊,
內容為建置的組態,
以及將組態排程到節點的方式。
(簡短形式: -ds)
-restore[:True|False]
在建置其他目標前,會先執行名為
Restore 的目標,並確認這些目標的
組建使用還原的最新組建邏輯。
當您的專案樹狀結構要求套件必須
才可加以建置時,這會很實用。
指定 -restore 的方式與指定
-restore:True 的方式相同。該參數
可用來覆寫來自回應檔的值。
(簡短形式: -r)
-restoreProperty:<n>=<v>
請只有在還原期間設定或覆寫這些專案層級的屬性,
而不要使用以 -property 引數所指定的
屬性。<n> 為屬性名稱,
而 <v> 則為屬性值。
請使用分號或逗號分開多個屬性,
或是個別指定每個屬性。
(簡短形式: -rp)
範例:
-restoreProperty:IsRestore=true;MyProperty=value
-profileEvaluation:<檔案>
設定檔 MSBuild 會進行評估,
並將結果寫入指定的檔案。若指定檔案的延伸模組為 '.md',
則產生的結果格式將會是 Markdown 格式。
否則,會產生以 Tab 字元分隔的檔案。
-interactive[:True|False]
指出不允許組建中的動作與使用者
互動。請勿在自動化情節中使用此
引數,因為在這個情節中不應出現
功能。
指定 -interactive 就等同於指定
-interactive:true。這個參數可用來
覆寫來自回應檔的值。
-isolateProjects[:True|False]
引發 MSBuild 獨立建置各個專案。
這是限制度較高的 MSBuild 模式,因為
專案圖形會需要在評估階段可供靜態探索,
但能在建置一組大量專案時改善排程
及降低記憶體額外負荷。
(簡短形式: -isolate)
這是實驗性的旗標,運作情形可能不如預期。
-inputResultsCaches:<快取檔案>...
以分號分隔的輸入快取檔案
(MSBuild 將會從此檔案讀取建置結果) 清單。
設定此項目也會開啟隔離式建置 (-isolate)。
(簡短形式: -irc)
-outputResultsCache:[cacheFile]
MSBuild 要在組建結束時寫入
其組建結果快取內容的目標輸出快取檔案。
設定此項也會開啟隔離組建 (-isolate)。
(簡短格式: -orc)
-graphBuild[:True|False]
引發 MSBuild 建構及建置專案圖形。
建構圖形會牽涉到識別專案參考
以構成專案相依性。建置圖形
會牽涉到嘗試在專案加以參考之前,
先建置專案參考,而這與傳統的
MSBuild 排程不同。
(簡短形式: -graph)
這是實驗性的旗標,運作情形可能不如預期。
-lowPriority[:True|False]
讓 MSBuild 以低處理序優先順序執行。
指定 -lowPriority 與指定
-lowPriority:True 相同。
(簡短形式: -low)
@<file> 從文字檔插入命令列設定。若要
指定多個回應檔,請分開指定每一個
回應檔。
所有名為 "msbuild.rsp" 的回應檔
將會自動從下列位置取用:
(1) msbuild.exe 的目錄
(2) 建置第一個專案或解決方案的目錄
-noAutoResponse 不自動包含任何 MSBuild.rsp 檔案。(簡短形式:
-noAutoRsp)
-noLogo 不顯示啟動橫幅及著作權訊息。
-version 只顯示版本資訊。(簡短形式: -ver)
-help 顯示此使用方式訊息。(簡短形式: -? 或 -h)
範例:
MSBuild MyApp.sln -t:Rebuild -p:Configuration=Release
MSBuild MyApp.csproj -t:Clean
-p:Configuration=Debug;TargetFrameworkVersion=v3.5
如需詳細資訊,請參閱 https://aka.ms/msbuild/docs
C:\Users\Administrator>
|
(完)
相關
[研究][ASP.NET]MSBuild 17.3.1 語法參數說明
https://shaurong.blogspot.com/2022/09/aspnetmsbuild-1731.html
[研究]Jenkins + Fortify SCA,因 Visual Studio 2019 升級 2022,變更 MSBuild 目錄
https://shaurong.blogspot.com/2022/01/jenkins-fortify-sca-visual-studio-2019.html
[研究]Fortify SCA Scan Wizard 的 MSBuild 或 Visual Studio 無法運作之解決https://shaurong.blogspot.com/2021/08/fortify-sca-scan-wizard-msbuild-visual.html
[研究] Microsoft.Net.Compilers is only supported on MSBuild v16.3
https://shaurong.blogspot.com/2019/12/microsoftnetcompilers-is-only-supported.html
沒有留言:
張貼留言