Skip to content

Releases: dotnet/msbuild

.NET 6.0 RC 1

15 Sep 16:20
2c55100
Compare
Choose a tag to compare
.NET 6.0 RC 1 Pre-release
Pre-release

.NET 6.0 Preview 7

11 Aug 15:26
d592862
Compare
Choose a tag to compare
.NET 6.0 Preview 7 Pre-release
Pre-release

MSBuild 16.11.0

11 Aug 15:28
0538acc
Compare
Choose a tag to compare

MSBuild 16.11.0

This version of MSBuild shipped with Visual Studio 2019 version 16.11.0 and .NET SDK 5.0.400.

What's new

  • MSBuild now supports long paths in the 64-bit amd64\MSBuild.exe executable.
  • New version properties MSBuildFileVersion (4-part, matches file version) and MSBuildSemanticVersion (matches package versions) are now available for use (#6534).

Detailed release notes

Added

  • Additional properties documented and available for completion in Visual Studio (#6500, #6530).
  • The SignFile task is now available in MSBuild on .NET 5.0 (#6509). Thanks, @Zastai!
  • New version properties MSBuildFileVersion (4-part, matches file version) and MSBuildSemanticVersion (matches package versions) are now available for use (#6534).

Changed

  • When using the experimental cache API, schedule proxy builds to the in-proc node for performance (#6386).
  • Experimental cache queries are now executed in parallel (#6468).
  • The ETW events generated in ResolveAssemblyReference now include an approximation of the "size" of the RAR request (#6410).

Fixed

  • Fixed memory leak in ProjectRootElement.Reload (#6457).
  • Added locking to avoid race conditions in BuildManager (#6412).
  • Allow ResolveAssemblyReferences precomputed cache files to be in read-only locations (#6393).
  • 64-bit al.exe is used when targeting 64-bit architectures (for real this time) (#6484).
  • Builds with ProduceOnlyReferenceAssembly no longer expect debug symbols to be produced (#6511). Thanks, @Zastai!
  • 64-bit MSBuild.exe supports long paths (and other .NET default behaviors) (#6562).
  • Non-graph builds no longer crash in the experimental project cache (#6568).
  • The experimental project cache is initialized only once (#6569).
  • The experimental project cache no longer tries to schedule proxy builds to the in-proc node (#6635).

Infrastructure

  • Use a packaged C# compiler to avoid changes in reference assembly generation caused by compiler changes (#6431).
  • Use more resilient test-result upload patterns (#6489).
  • Conditional compilation for .NET Core within our repo now includes new .NET 5.0+ runtimes (#6538).
  • Switched to OneLocBuild for localization PRs (#6561).
  • Moved to latest Ubuntu image for PR test legs (#6573).

.NET 6.0 Preview 6

14 Jul 16:45
1b7661f
Compare
Choose a tag to compare
.NET 6.0 Preview 6 Pre-release
Pre-release

MSBuild 16.10.2

15 Jun 21:10
Compare
Choose a tag to compare

MSBuild 16.10.2

This version of MSBuild shipped with Visual Studio 2019 version 16.10.2 and will ship with .NET SDK 5.0.302.

Fixed

  • Fixed a regression in the MakeRelative property function that dropped trailing slashes (#6513). Thanks, @dsparkplug and @pmisik!
  • Fixed a regression in glob matching where files without extension were erroneously not matched (#6531).
  • Fixed a change in logging that caused crashes in Azure DevOps loggers (#6520).

.NET 6.0 Preview 5

17 Jun 18:31
018bed8
Compare
Choose a tag to compare
.NET 6.0 Preview 5 Pre-release
Pre-release

MSBuild 16.10.1

08 Jun 18:27
Compare
Choose a tag to compare

MSBuild 16.10.1

This version of MSBuild shipped with Visual Studio 2019 version 16.10.1 and .NET SDK 5.0.301.

Fixed

  • Restore support for building individual project(s) within solutions by specifying -t:Project (#6465).

MSBuild 16.10.0

25 May 19:36
4242f38
Compare
Choose a tag to compare

MSBuild 16.10.0

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!
  • Refactoring and code cleanup (#6120, #6159, #6158, #6282). Thanks, @Nirmal4G!
  • Span<T>-based methods are used on .NET Framework MSBuild as well as .NET 5.0 (#6130).
  • Improved MSB4064 error to include information about the loaded task that didn't have the argument (#5945). Thanks, @BartoszKlonowski!
  • Performance improvements in inter-node communication (#6023). Thanks, @KirillOsenkov!
  • Performance improvements in matching items based on metadata (#6035), property expansion (#6128), glob evaluation (#6151), enumerating files (#6227).
  • When evaluated with IgnoreInvalidImports, empty imports are also allowed (#6222).
  • Log.HasLoggedError now respects MSBuildWarningsAsErrors (#6174).
  • TargetPath metadata is now respected on items that copy to output directories, and takes precedence over Link (#6237).
  • The Restore operation now fails when SDKs are unresolvable (#6312).
  • MSBuild.exe.config now has explicit binding redirects for all assemblies in the MSBuild VSIX (#6334).

Fixed

  • Inconsistencies between XamlPreCompile and the CoreCompile C## compiler invocation (#6093). Thanks, @huoyaoyuan!
  • Wait for child nodes to exit before exiting the entry-point node in VSTest scenarios (#6053). Thanks, @tmds!
  • Fix bad plugin EndBuild exception handling during graph builds (#6110).
  • Allow specifying UseUtf8Encoding in ToolTasks (#6188).
  • Failures on big-endian systems (#6204). Thanks, @uweigand!
  • 64-bit al.exe is used when targeting 64-bit architectures (#6207).
  • Improved error messages when encountering a BadImageReferenceException in ResolveAssemblyReferences (#6240, #6270). Thanks, @FiniteReality!
  • Escape special characters in Exec’s generated batch files, allowing builds as users with some special characters in their Windows username (#6233).
  • Permit comments and trailing commas in solution filter files (#6346).
  • Exceptions thrown from experimental cache plugins are now handled and logged better (#6345, #6368).
  • Source generators with configuration files can now be used in XamlPreCompile (#6438).
  • Large builds no longer crash with an exception in LogProjectStarted (#6437).

Infrastructure

  • Update to Arcade 5.0 and .NET 5.0 (#5836).
  • The primary development branch is now named main.
  • Test robustness improvements (#6055, #6336, #6337, #6332). Thanks, @tmds and @KirillOsenkov!
  • Remove unnecessary NuGet package references (#6036). Thanks, @teo-tsirpanis!
  • Correctly mark .NET Framework 3.5 reference assembly package dependency as private (#6214).
  • Our own builds opt into text-based performance logging (#6274).
  • Update to Arcade publishing v3 (#6349).
  • Use OneLocBuild localization process (#6378).

Documentation

  • Updates to static graph documentation (#6043).
  • Short doc on the threading model (#6042).
  • Update help text to indicate that -- is a valid argument prefix (#6205). Thanks, @BartoszKlonowski!
  • API documentation improvements (#6246, #6284).
  • Details about interactions with the Global Assembly Cache (#6173).

MSBuild 16.9.2

10 Jun 15:59
58c36d1
Compare
Choose a tag to compare

MSBuild 16.9.2

This version of MSBuild shipped with Visual Studio 2019 version 16.9.7.

Fixed

  • Fixed MSB0001 error when building large solutions (#6437).

.NET 6.0 Preview 4

25 May 17:42
e73d08c
Compare
Choose a tag to compare
.NET 6.0 Preview 4 Pre-release
Pre-release