2022年9月14日 星期三

[研究][ASP.NET]MSBuild 17.3.1 語法參數說明

[研究][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

沒有留言:

張貼留言