This version of MSBuild shipped with Visual Studio 2019 version 16.10.0 and .NET SDK 5.0.300.
What's new
MSBuild now targets .NET 5.0 and .NET Framework 4.7.2.
MSBuild is faster and uses less memory.
Binary logs are smaller and have less performance overhead.
Tasks can now opt into resource management to improve parallelism in large builds.
It's now possible to optionally embed arbitrary files in a binary log.
Known Issues ⚠
When specifying a single project in a solution as a target, MSBuild instead tries to build that target name within all projects in the solution, leading to MSB4057 (#6465).
Detailed release notes
Added
Projects can now specify AdditionalTargetFrameworkInfoProperty items to indicate that referencing projects should get those properties exposed as AdditionalPropertiesFromProject metadata on resolved reference items. (#5994).
The Unzip task now accepts Include and Exclude arguments to filter what is extracted from the zip file (#6018). Thanks, @IvanLieckens!
The -graph:noBuild command line argument can be used to validate that a graph is buildable without actually building it (#6016).
TaskParameterEventArgs allow logging task parameters and values in a compact, structured way (#6155). Thanks, @KirillOsenkov!
ClickOnce publish now supports Ready To Run (#6244).
.NET 5.0 applications may now specify a toolset configuration file (#6220).
ResolveAssemblyReferences can now consume information about assemblies distributed as part of the SDK (#6017).
Allow constructing a ProjectInstance from a ProjectLink (#6262).
Introduce cross-process resource management for tasks (#5859).
ProjectEvaluationFinished now has fields for properties and items (#6287). Thanks, @KirillOsenkov!
WriteCodeFragment can now write assembly attributes of specified types, and infers some common types (#6285). Thanks, @reduckted!
The -detailedSummary option now accepts a boolean argument, preventing dumping details to the console logger when building with -bl -ds:false (#6338). Thanks, @KirillOsenkov!
Binary logs now include files listed in the item EmbedInBinlog as well as MSBuild projects (#6339). Thanks, @KirillOsenkov!
The FindInvalidProjectReferences task is now available in .NET Core/5.0+ scenarios (#6365).
Changed
String deduplication is now much more sophisticated, reducing memory usage (#5663).
Refactoring and performance improvements in ResolveAssemblyReferences (#5929, #6094).
Binary logs now store strings only once, dramatically reducing log size (#6017, #6326). Thanks, @KirillOsenkov!
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps Microsoft.Build.Utilities.Core from 16.8.0 to 16.10.0.
Release notes
Sourced from Microsoft.Build.Utilities.Core's releases.
... (truncated)
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)