msbuild(1)
π msbuild β the manual page, bestie edition
okay so this is msbuild(1) from the General Commands Manual section, and honestly? she's iconic. let's get into it π«Ά
β¨ NAME β¨
msbuild β literally the name, that's it, that's the whole section π (short and sweet, we love a minimal entrance)
π SYNOPSIS π
msbuild [options] [project file | directory]
so you're gonna call her with some options, and then optionally a project file or a directory. that's the whole vibe check right there β¨
π¦ DESCRIPTION π¦
okay bestie, here's the tea: msbuild builds the specified targets in the project file. that's her job, that's her moment, that's her main character energy π
so if you don't specify a project file? no worries, she's not gonna just sit there. MSBuild will go ahead and search the current working directory for a file that has a file extension that ends in "proj" β and then she uses that file. periodt. π₯
and if you hand her a directory instead of a file? she'll search that directory for a project file. like, she'll go look for it herself. independent queen behavior fr fr π
ngl the "extension ends in proj" thing is doing a lot of heavy lifting here β that's how she sniffs out what counts as a project file, iykyk πΈ
okay that's part one, more chaos incoming π
β¨ OPTIONS β¨
okay so this is the customization era of msbuild(1), and there are so many switches. every one is here, bestie β no skips, no βyouβll figure it outβ energy. π
/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/
/maxcpucount[:n]β Monoβsmsbuilddoes not support parallel builds yet. So, this internally gets set to1.
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])
/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
/verbosity:<level>β Display this amount of information in the event log. The available verbosity levels are:q[uiet],m[inimal],n[ormal],d[etailed], anddiag[nostic]. (Short form:/v)
Example:
/verbosity:quiet
/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β ShowTaskCommandLineEventmessagesShowTimestampβ Display the Timestamp as a prefix to any message.ShowEventIdβ ShoweventIdfor started events, finished events, and messagesForceNoAlignβ Does not align the text to the size of the console bufferDisableConsoleColorβ 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 itVerbosityβ overrides the/verbositysetting for this logger.
Example:
/consoleloggerparameters:PerformanceSummary;NoSummary;Verbosity=minimal
/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 namedmsbuild[n].log. Events from all nodes are combined into a single log. The location of the file and other parameters for thefileLoggercan be specified through the addition of the/fileLoggerParameters[n]switch. βnβ if present can be a digit from1-9, allowing up to 10 file loggers to be attached. (Short form:/fl[n])/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 from1-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, orASCII. Default verbosity isDetailed.
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
/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:
[<logger class>,]<logger assembly>[;<logger parameters>]
The <logger class> syntax is:
[<partial or full namespace>.]<logger class name>
The <logger assembly> syntax is:
{<assembly name>[,<strong name>] | <assembly file>}
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,/mylibs/My.dll*ForwardingLogger,/mylibs/Loggger.dll
/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 calledMSBuild<nodeid>.log. The location of the files and other parameters for thefileLoggercan be specified with the addition of the/fileLoggerParametersswitch.
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.
/logger:<logger>β Use this logger to log events from MSBuild. To specify multiple loggers, specify each logger separately.
The <logger> syntax is:
[<logger class>,]<logger assembly>[;<logger parameters>]
The <logger class> syntax is:
[<partial or full namespace>.]<logger class name>
The <logger assembly> syntax is:
{<assembly name>[,<strong name>] | <assembly file>}
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,/MyLoggers/MyLogger.dll;OutputAsHTML
/binaryLogger[:output.binlog]β Serializes all build events to a compressed binary file. By default the file is in the current directory and namedmsbuild.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 usually10-20xsmaller than the most detailed text diagnostic-level log, but it contains more information. (Short form:/bl)
Examples:
/bl
/bl:output.binlog
/bl:../../custom.binlog
/binaryLogger
/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.
/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
/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
/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
/detailedsummaryβ Shows detailed information at the end of the build about the configurations built and how they were scheduled to nodes. (Short form:/ds)@<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:
- the directory of
msbuild.dll - the directory of the first project or solution built
/noautoresponseβ Do not auto-include anyMSBuild.rspfiles. (Short form:/noautorsp)/nologoβ Do not display the startup banner and copyright message./versionβ Display version information only. (Short form:/ver)/helpβ Display this usage message. (Short form:/?or/h)
π SEE ALSO π
π COPYRIGHT π
Okay bestie, the legal bit β short but important, don't skip it π
Copyright (C) Microsoft Corporation. All rights reserved.
That's it. That's the whole section. No cap. Microsoft Corporation holds the copyright, and all rights are reserved β so don't go remixing this into your own thing and pretending you wrote it, that's not the vibe π
And that's a wrap on msbuild(1), bestie! π«Ά You made it to the very end β main character energy honestly β¨ The page signs off with <bold>msbuild(1)</bold> sitting pretty in the footer, right at the bottom where footers live, and that's your cue to close the manpage and go build something iconic π₯
go forth and compile, queen ππ
π¦ where this page comes from
- arch rolling: mono-msbuild 16.10.1.xamarinxplat.2021.05.26.14.00-5 Β· MIT
- nixos 26.05: msbuild 16.10.1+xamarinxplat.2021.05.26.14.00
- nixpkgs unstable: msbuild 16.10.1+xamarinxplat.2021.05.26.14.00
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms