Created
December 11, 2024 07:51
-
-
Save nox40/221e6c9ce55d898dd1ab96e1f8942f27 to your computer and use it in GitHub Desktop.
%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild /help
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| MSBuild version 17.12.12+1cce77968 for .NET Framework | |
| Syntax: MSBuild.exe [options] [project file | directory] | |
| Description: Builds the specified targets in the project file. If | |
| a project file is not specified, MSBuild searches the | |
| current working directory for a file that has a file | |
| extension that ends in "proj" and uses that file. If | |
| a directory is specified, MSBuild searches that | |
| directory for a project file. | |
| Switches: Note that you can specify switches using | |
| "-switch", "/switch" and "--switch". | |
| -target:<targets> Build these targets in this project. Use a semicolon or a | |
| comma to separate multiple targets, or specify each | |
| target separately. (Short form: -t) | |
| Example: | |
| -target:Resources;Compile | |
| -property:<n>=<v> Set or override these project-level properties. <n> is | |
| the property name, and <v> is the property value. Use a | |
| semicolon or a comma to separate multiple properties, or | |
| specify each property separately. (Short form: -p) | |
| Example: | |
| -property:WarningLevel=2;OutDir=bin\Debug\ | |
| -logger:<logger> Use this logger to log events from MSBuild. To specify | |
| multiple loggers, specify each logger separately. | |
| The <logger> syntax is: | |
| [<class>,]<assembly>[,<options>][;<parameters>] | |
| The <logger class> syntax is: | |
| [<partial or full namespace>.]<logger class name> | |
| The <logger assembly> syntax is: | |
| {<assembly name>[,<strong name>] | <assembly file>} | |
| Logger options specify how MSBuild creates the logger. | |
| The <logger parameters> are optional, and are passed | |
| to the logger exactly as you typed them. (Short form: -l) | |
| Examples: | |
| -logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral | |
| -logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML | |
| -distributedLogger:<central logger>*<forwarding logger> | |
| Use this logger to log events from MSBuild, attaching a | |
| different logger instance to each node. To specify | |
| multiple loggers, specify each logger separately. | |
| (Short form -dl) | |
| The <logger> syntax is: | |
| [<class>,]<assembly>[,<options>][;<parameters>] | |
| The <logger class> syntax is: | |
| [<partial or full namespace>.]<logger class name> | |
| The <logger assembly> syntax is: | |
| {<assembly name>[,<strong name>] | <assembly file>} | |
| Logger options specify how MSBuild creates the logger. | |
| The <logger parameters> are optional, and are passed | |
| to the logger exactly as you typed them. (Short form: -l) | |
| Examples: | |
| -dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral | |
| -dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll | |
| -verbosity:<level> Display this amount of information in the event log. | |
| The available verbosity levels are: q[uiet], m[inimal], | |
| n[ormal], d[etailed], and diag[nostic]. (Short form: -v) | |
| Example: | |
| -verbosity:quiet | |
| Note: File loggers' verbosity | |
| is set separately by | |
| -fileloggerparameters. | |
| -validate Validate the project against the default schema. (Short | |
| form: -val) | |
| -validate:<schema> Validate the project against the specified schema. (Short | |
| form: -val) | |
| Example: | |
| -validate:MyExtendedBuildSchema.xsd | |
| -consoleLoggerParameters:<parameters> | |
| Parameters to console logger. (Short form: -clp) | |
| The available parameters are: | |
| PerformanceSummary--Show time spent in tasks, targets | |
| and projects. | |
| Summary--Show error and warning summary at the end. | |
| NoSummary--Don't show error and warning summary at the | |
| end. | |
| ErrorsOnly--Show only errors. | |
| WarningsOnly--Show only warnings. | |
| NoItemAndPropertyList--Don't show list of items and | |
| properties at the start of each project build. | |
| ShowCommandLine--Show TaskCommandLineEvent messages | |
| ShowTimestamp--Display the Timestamp as a prefix to any | |
| message. | |
| ShowEventId--Show eventId for started events, finished | |
| events, and messages | |
| ForceNoAlign--Does not align the text to the size of | |
| the console buffer | |
| DisableConsoleColor--Use the default console colors | |
| for all logging messages. | |
| DisableMPLogging-- Disable the multiprocessor | |
| logging style of output when running in | |
| non-multiprocessor mode. | |
| EnableMPLogging--Enable the multiprocessor logging | |
| style even when running in non-multiprocessor | |
| mode. This logging style is on by default. | |
| ForceConsoleColor--Use ANSI console colors even if | |
| console does not support it | |
| PreferConsoleColor--Use ANSI console colors only if | |
| target console does support it | |
| Verbosity--overrides the -verbosity setting for this | |
| logger. | |
| Example: | |
| -consoleLoggerParameters:PerformanceSummary;NoSummary; | |
| Verbosity=minimal | |
| -maxCpuCount[:n] Specifies the maximum number of concurrent processes to | |
| build with. If the switch is not used, the default | |
| value used is 1. If the switch is used without a value | |
| MSBuild will use up to the number of processors on the | |
| computer. (Short form: -m[:n]) | |
| -ignoreProjectExtensions:<extensions> | |
| List of extensions to ignore when determining which | |
| project file to build. Use a semicolon or a comma | |
| to separate multiple extensions. | |
| (Short form: -ignore) | |
| Example: | |
| -ignoreProjectExtensions:.sln | |
| -toolsVersion:<version> | |
| The version of the MSBuild Toolset (tasks, targets, etc.) | |
| to use during build. This version will override the | |
| versions specified by individual projects. (Short form: | |
| -tv) | |
| Example: | |
| -toolsVersion:3.5 | |
| -fileLoggerParameters[n]:<parameters> | |
| Provides any extra parameters for file loggers. | |
| The presence of this switch implies the | |
| corresponding -fileLogger[n] switch. | |
| "n" if present can be a digit from 1-9. | |
| -fileLoggerParameters is also used by any distributed | |
| file logger, see description of -distributedFileLogger. | |
| (Short form: -flp[n]) | |
| The same parameters listed for the console logger are | |
| available. Some additional available parameters are: | |
| LogFile--path to the log file into which the | |
| build log will be written. | |
| Append--determines if the build log will be appended | |
| to or overwrite the log file. Setting the | |
| switch appends the build log to the log file; | |
| Not setting the switch overwrites the | |
| contents of an existing log file. | |
| The default is not to append to the log file. | |
| Encoding--specifies the encoding for the file, | |
| for example, UTF-8, Unicode, or ASCII | |
| Default verbosity is Detailed. | |
| Examples: | |
| -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 | |
| -terminalLogger[:auto,on,off] | |
| Enable or disable the terminal logger. Terminal logger | |
| provides enhanced build output on the console in real time, | |
| organized logically by project, and designed to highlight | |
| actionable information. Specify auto (or use the option | |
| without arguments) to use the terminal logger only if the | |
| standard output is not redirected. Don't parse the output | |
| or otherwise rely on it remaining unchanged in future | |
| versions. This option is available in MSBuild 17.8 and | |
| later. | |
| (Short form: -tl) | |
| -terminalLoggerParameters: <parameters> | |
| Parameters to terminal logger. (Short form: -tlp) | |
| The available parameters. | |
| default--Specifies the default behavior of the terminal | |
| logger. It requires one of the following values: | |
| - `on`, `true` forces TerminalLogger to be used even | |
| when it would be disabled. | |
| - `off`, `false` forces TerminalLogger to not be used | |
| even when it would be enabled. | |
| - `auto` enables TerminalLogger when the terminal | |
| supports it and the session doesn't have redirected | |
| stdout/stderr | |
| verbosity--Override the -verbosity setting for this | |
| logger | |
| showCommandLine--Show TaskCommandLineEvent messages | |
| Example: | |
| -tlp:default=auto;verbosity=diag;shownCommandLine | |
| -nodeReuse:<parameters> | |
| Enables or Disables the reuse of MSBuild nodes. | |
| The parameters are: | |
| True --Nodes will remain after the build completes | |
| and will be reused by subsequent builds (default) | |
| False--Nodes will not remain after the build completes | |
| (Short form: -nr) | |
| Example: | |
| -nr:true | |
| -preprocess[:file] | |
| Creates a single, aggregated project file by | |
| inlining all the files that would be imported during a | |
| build, with their boundaries marked. This can be | |
| useful for figuring out what files are being imported | |
| and from where, and what they will contribute to | |
| the build. By default the output is written to | |
| the console window. If the path to an output file | |
| is provided that will be used instead. | |
| (Short form: -pp) | |
| Example: | |
| -pp:out.txt | |
| -targets[:file] | |
| Prints a list of available targets without executing the | |
| actual build process. By default the output is written to | |
| the console window. If the path to an output file | |
| is provided that will be used instead. | |
| (Short form: -ts) | |
| Example: | |
| -ts:out.txt | |
| -warnAsError[:code[;code2]] | |
| List of warning codes to treats as errors. Use a semicolon | |
| or a comma to separate multiple warning codes. To treat all | |
| warnings as errors use the switch with no values. | |
| (Short form: -err[:c;[c2]]) | |
| Example: | |
| -warnAsError:MSB4130 | |
| When a warning is treated as an error the target will | |
| continue to execute as if it was a warning but the overall | |
| build will fail. | |
| -warnNotAsError[:code[;code2]] | |
| List of warning codes to treats not treat as errors. | |
| Use a semicolon or a comma to separate | |
| multiple warning codes. Has no effect if the -warnaserror | |
| switch is not set. | |
| Example: | |
| -warnNotAsError:MSB3026 | |
| -warnAsMessage[:code[;code2]] | |
| List of warning codes to treats as low importance | |
| messages. Use a semicolon or a comma to separate | |
| multiple warning codes. | |
| (Short form: -noWarn[:c;[c2]]) | |
| Example: | |
| -warnAsMessage:MSB3026 | |
| -binaryLogger[:[LogFile=]output.binlog[;ProjectImports={None,Embed,ZipFile}]] | |
| Serializes all build events to a compressed binary file. | |
| By default the file is in the current directory and named | |
| "msbuild.binlog". The binary log is a detailed description | |
| of the build process that can later be used to reconstruct | |
| text logs and used by other analysis tools. A binary log | |
| is usually 10-20x smaller than the most detailed text | |
| diagnostic-level log, but it contains more information. | |
| (Short form: -bl) | |
| The binary logger by default collects the source text of | |
| project files, including all imported projects and target | |
| files encountered during the build. The optional | |
| ProjectImports switch controls this behavior: | |
| ProjectImports=None - Don't collect the project | |
| imports. | |
| ProjectImports=Embed - Embed project imports in the | |
| log file. | |
| ProjectImports=ZipFile - Save project files to | |
| output.projectimports.zip | |
| where output is the same name | |
| as the binary log file name. | |
| The default setting for ProjectImports is Embed. | |
| Note: the logger does not collect non-MSBuild source files | |
| such as .cs, .cpp etc. | |
| A .binlog file can be "played back" by passing it to | |
| msbuild.exe as an argument instead of a project/solution. | |
| Other loggers will receive the information contained | |
| in the log file as if the original build was happening. | |
| You can read more about the binary log and its usages at: | |
| https://aka.ms/msbuild/binlog | |
| Examples: | |
| -bl | |
| -bl:output.binlog | |
| -bl:output.binlog;ProjectImports=None | |
| -bl:output.binlog;ProjectImports=ZipFile | |
| -bl:..\..\custom.binlog | |
| -binaryLogger | |
| -check | |
| Enables BuildChecks during the build. | |
| BuildCheck enables evaluating rules to ensure properties | |
| of the build. For more info see aka.ms/buildcheck | |
| -restore[:True|False] | |
| Runs a target named Restore prior to building | |
| other targets and ensures the build for these | |
| targets uses the latest restored build logic. | |
| This is useful when your project tree requires | |
| packages to be restored before it can be built. | |
| Specifying -restore is the same as specifying | |
| -restore:True. Use the parameter to override | |
| a value that comes from a response file. | |
| (Short form: -r) | |
| -profileEvaluation:<file> | |
| Profiles MSBuild evaluation and writes the result | |
| to the specified file. If the extension of the specified | |
| file is '.md', the result is generated in markdown | |
| format. Otherwise, a tab separated file is produced. | |
| -restoreProperty:<n>=<v> | |
| Set or override these project-level properties only | |
| during restore and do not use properties specified | |
| with the -property argument. <n> is the property | |
| name, and <v> is the property value. Use a | |
| semicolon or a comma to separate multiple properties, | |
| or specify each property separately. | |
| (Short form: -rp) | |
| Example: | |
| -restoreProperty:IsRestore=true;MyProperty=value | |
| -interactive[:True|False] | |
| Indicates that actions in the build are allowed to | |
| interact with the user. Do not use this argument | |
| in an automated scenario where interactivity is | |
| not expected. | |
| Specifying -interactive is the same as specifying | |
| -interactive:true. Use the parameter to override a | |
| value that comes from a response file. | |
| -isolateProjects[:True|MessageUponIsolationViolation|False] | |
| Causes MSBuild to build each project in isolation. | |
| When set to "MessageUponIsolationViolation" (or its short | |
| form "Message"), only the results from top-level targets | |
| are serialized if the -outputResultsCache switch is | |
| supplied. This is to mitigate the chances of an | |
| isolation-violating target on a dependency project using | |
| incorrect state due to its dependency on a cached target | |
| whose side effects would not be taken into account. | |
| (For example, the definition of a property.) | |
| This is a more restrictive mode of MSBuild as it requires | |
| that the project graph be statically discoverable at | |
| evaluation time, but can improve scheduling and reduce | |
| memory overhead when building a large set of projects. | |
| (Short form: -isolate) | |
| This flag is experimental and may not work as intended. | |
| -graphBuild[:True|False] | |
| Causes MSBuild to construct and build a project graph. | |
| Constructing a graph involves identifying project | |
| references to form dependencies. Building that graph | |
| involves attempting to build project references prior | |
| to the projects that reference them, differing from | |
| traditional MSBuild scheduling. | |
| (Short form: -graph) | |
| This flag is experimental and may not work as intended. | |
| -inputResultsCaches:<cacheFile>... | |
| Semicolon separated list of input cache files that MSBuild | |
| will read build results from. If -isolateProjects is set | |
| to False, this sets it to True. (short form: -irc) | |
| -outputResultsCache:[cacheFile] | |
| Output cache file where MSBuild will write the contents of | |
| its build result caches at the end of the build. | |
| If -isolateProjects is set to False, this sets it to True. | |
| (short form: -orc) | |
| -reportFileAccesses[:True|False] | |
| Causes MSBuild to report file accesses to any configured | |
| project cache plugins. | |
| This flag is experimental and may not work as intended. | |
| -lowPriority[:True|False] | |
| Causes MSBuild to run at low process priority. | |
| Specifying -lowPriority is the same as specifying | |
| -lowPriority:True. | |
| (Short form: -low) | |
| -question | |
| (Experimental) Question whether there is any build work. | |
| MSBuild will error out when it detects a target or task | |
| that can be incremental (has inputs and outputs), | |
| but isn't up to date. | |
| (Short form: -q) | |
| -detailedSummary[:True|False] | |
| Shows detailed information at the end of the build | |
| about the configurations built and how they were | |
| scheduled to nodes. | |
| (Short form: -ds) | |
| -getProperty:propertyName,... | |
| Write out the value of one or more specified properties | |
| after evaluation, without executing the build, or if either | |
| the -targets option or the -getTargetResult option is | |
| used, write out the values after the build. | |
| -getItem:itemName,... | |
| Write out the value of one or more specified items and | |
| their associated metadata after evaluation without | |
| executing the build, or if either the -targets option | |
| or the -getTargetResult option is used, write out | |
| the values after the build. | |
| -getTargetResult:targetName,... | |
| Write out the output value of one or more targets and | |
| the specified targets will be executed. | |
| -getResultOutputFile:file | |
| Redirect output from get* into a file. | |
| Example: | |
| -getProperty:Bar -getResultOutputFile:Biz.txt | |
| This writes the value of property Bar into Biz.txt. | |
| -featureAvailability:featureName,... | |
| Check feature availability. The result is one of the | |
| strings "Undefined", "Available", "NotAvailable" and | |
| "Preview". | |
| - Undefined - the availability of the feature is undefined | |
| (the feature name is unknown to the feature availability | |
| checker) | |
| - NotAvailable - the feature is not available (unlike | |
| Undefined, the feature name is known to the feature | |
| availability checker and it knows the feature is not | |
| supported by current MSBuild engine) | |
| - Available - the feature is available | |
| - Preview - the feature is in preview (not stable) | |
| (Short form: -fa) | |
| -help Display this usage message. (Short form: -? or -h) | |
| -version Display version information only. (Short form: -ver) | |
| -noLogo Do not display the startup banner and copyright message. | |
| -noAutoResponse Do not auto-include any MSBuild.rsp files. (Short form: | |
| -noAutoRsp) | |
| -noConsoleLogger Disable the default console logger and do not log events | |
| to the console. (Short form: -noConLog) | |
| -fileLogger[n] Logs the build output to a file. By default | |
| the file is in the current directory and named | |
| "msbuild[n].log". Events from all nodes are combined into | |
| a single log. The location of the file and other | |
| parameters for the fileLogger can be specified through | |
| the addition of the "-fileLoggerParameters[n]" switch. | |
| "n" if present can be a digit from 1-9, allowing up to | |
| 10 file loggers to be attached. (Short form: -fl[n]) | |
| -distributedFileLogger | |
| Logs the build output to multiple log files, one log file | |
| per MSBuild node. The initial location for these files is | |
| the current directory. By default the files are called | |
| "MSBuild<nodeid>.log". The location of the files and | |
| other parameters for the fileLogger can be specified | |
| with the addition of the "-fileLoggerParameters" switch. | |
| If a log file name is set through the fileLoggerParameters | |
| switch the distributed logger will use the fileName as a | |
| template and append the node id to this fileName to | |
| create a log file for each node. | |
| @<file> Insert command-line settings from a text file. To specify | |
| multiple response files, specify each response file | |
| separately. | |
| Any response files named "msbuild.rsp" are automatically | |
| consumed from the following locations: | |
| (1) the directory of msbuild.exe | |
| (2) the directory of the first project or solution built | |
| Examples: | |
| MSBuild MyApp.sln -t:Rebuild -p:Configuration=Release | |
| MSBuild MyApp.csproj -t:Clean | |
| -p:Configuration=Debug;TargetFrameworkVersion=v3.5 | |
| For more detailed information, see https://aka.ms/msbuild/docs |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment