Releases: dotnet/msbuild
Releases · dotnet/msbuild
MSBuild 17.1.0
This version of MSBuild shipped with Visual Studio 2022 17.1.0 and .NET SDK 6.0.200.
What's Changed (auto-generated)
- 17.1 branding by @benvillalobos in #6903
- Remove NoWarn for NU5125 by @rainersigwald in #6900
- Clean up minimum Windows version checks by @ladipro in #6877
- Fix EngineServices version bump check by @ladipro in #6939
- Fix EngineServices version bump check follow-up by @ladipro in #6942
- Events for SDK resolution by @rainersigwald in #6876
- [RAR] Stop removing from file cache just because an assembly is cached in process by @Forgind in #6891
- ProjectReference protocol documentation updates by @drewnoakes in #6892
- Enable NuGet static-graph restore by @rainersigwald in #6905
- Rework the only .doc file into .md by @lfmundim in #6910
- Update a namespace name in consuming-nuget-package.md by @tony-xia in #6914
- Fixed a minor typo by @tony-xia in #6915
- Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 5308962 by @dotnet-bot in #6929
- Fix typo: defailt -> default by @KirillOsenkov in #6938
- Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 5325719 by @dotnet-bot in #6951
- [automated] Merge branch 'vs17.0' => 'main' by @dotnet-maestro-bot in #6922
- Add Microsoft.IO.Redist for directory enumeration. by @AR-May in #6771
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6886
- Expander shortcut for string.LastIndexOfAny() by @KirillOsenkov in #6963
- [automated] Merge branch 'vs17.0' => 'main' by @dotnet-maestro-bot in #6965
- [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in #6868
- [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in #6893
- Introduce public interfaces for per-project and per-evaluation disk I/O callbacks by @ladipro in #6728
- Spurious Windows test failure in FindOnPathSucceeds by @Adityanr in #6975
- [automated] Merge branch 'vs17.0' => 'main' by @dotnet-maestro-bot in #6978
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6973
- double dash validation fix by @stanciuadrian in #6930
- Remove jnm2.ReferenceAssemblies.net35 to remove it as a prebuilt dependency for source-build by @dagood in #6966
- Eval cond perf by @Forgind in #6859
- Properly report HasLoggedErrors when converting errors into warnings by @benvillalobos in #6912
- RemoveDir returns !HasLoggedErrors by @benvillalobos in #6933
- Disable BannedApiAnalyzers during source-build to avoid a prebuilt dependency by @dagood in #6967
- ToolTasks Don't Log MSB4181 When Terminated by @benvillalobos in #6968
- Add missing match on metadata location translation by @cdmihai in #6972
- Check if Documentis null before creating elementlocation object by @yuehuang010 in #6998
- Minor allocation optimizations / cleanup by @ladipro in #6983
- Update Microsoft.Build.CommonTypes.xsd for
AnalysisLevel
andAnalysisMode
values by @mavasani in #6996 - Remove pinned .NET Framework ref assembly package: let SDK provide it by @dagood in #6986
- Simplify property/item type requirements Fixes #6985 by @Forgind in #6995
- Stop loading Microsoft.DevDiv files as read-only by @ladipro in #7007
- Simplify verify throw and remove unnecessary usings by @Forgind in #6999
- CurrentHost was not properly set when DisableInProcNode = false by @xen2 in #7013
- Use cached StringBuilder in CreateManifestResourceName by @ladipro in #7012
- Preventing warning in bootstrapper package self contained scenario by @MSLukeWest in #7009
- Attempt to prevent node explosions with parallel node creation by @Forgind in #7004
- Remove reference to .NET Core 2.1 by @rainersigwald in #7030
- MSBuild 17.0 release notes by @rainersigwald in #6971
- Enable TaskHostFactory for .NET (Core) MSBuild by @rainersigwald in #6994
- Add VS Code tasks.json by @rainersigwald in #7036
- Switch to VS 2022 pools by @rainersigwald in #6908
- Add enumeration values for CopyToOutputDirectory in XSD by @drewnoakes in #7024
- Improve globbing performance by @drewnoakes in #7040
- Update mac version for CI by @Forgind in #7039
- Update some dependencies to 6.0 versions by @rainersigwald in #7050
- [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in #6988
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6981
- RAR: Log full path of bad-image failures by @rainersigwald in #6895
- Switch to PublicApiAnalyzers by @rainersigwald in #7018
- Code cleanup: Remove references to FxCop by @ladipro in #7038
- Ship System.ValueTuple.dll to VS by @rainersigwald in #7045
- Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 5474402 by @dotnet-bot in #7060
- Disable RestoreUseStaticGraphEvaluation for source-build by @MichaelSimons in #7059
- Document MSBuildDebugEngine and other debugging doc improvements by @cdmihai in #7003
- Disable ValidateExecutableReferences by @rainersigwald in #7065
- Optimize diag level for file logger and console logger by @rokonec in #7026
- Loosen version comparisons in loading assemblies by @Forgind in #7042
- Remove closure allocation in CompositeGlob.IsMatch by @drewnoakes in #7052
- Get Microsoft SDK paths from 32-bit registry by @rainersigwald in #7048
- [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in #6989
- Remove locker object from LazyFormattedBuildEventArgs by @ladipro in #7010
- Introduce Dependabot by @rainersigwald in #7046
- Fix binding redirect for System.Threading.Tasks.Dataflow by @rainersigwald in #7072
- Permit individually settable search paths by @Forgind in #7008
- Move NativeMethods and Traits to Framework by @rainersigwald in #7016
- Update System.Text.Encodings.Web binding redirect by @rainersigwald in #7077
- Drop remaining jnm2.ReferenceAssemblies.net35 references by @rainersigwald in #7076
- Revert "Disable ValidateExecutableReferences" by @rainersigwald in #7073
- Fixing bug detected by DDRIT by @rokonec in #7082
- Static graph doc clarifications by @cdmihai in #6812
- Optimized immutable files up to date checks by @rokonec in #6974
- Al.exe finds the correct tool based on platform by @benvillalobos in #7051
- Evaluator allocation optimization by @MichalPavlik in #7056
- Remove unused 'capacity' parameter for COW dictionaries by @drewnoakes in #7080
- Fix github URLs microsoft/msbuild -> dotnet/msbuild by @ladipro in #7083
- [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in #7091
- Fixed test that is dependent on current regional settings by @MichalPavlik in #7087
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #7081
- Add NoWarn t...
.NET 7.0 Preview 3
.NET 7.0 Preview 2
MSBuild 17.1.1
This version of MSBuild shipped with .NET SDK 6.0.202 and includes a fix for dotnet/sdk#23498.
What's Changed
- Revert "Loosen version comparisons in loading assemblies (#7042)" by @rainersigwald in #7415
- Update official build references to tasks and pools that recently started failing by @rainersigwald in #7416
Full Changelog: v17.1.0...v17.1.1
.NET 7.0 Preview 1
.NET 6.0
MSBuild 17.0.0
This version of MSBuild shipped with Visual Studio 2022 version 17.0.0 and .NET SDK 6.0.100.
What's new
- MSBuild now reports its version as
17
and uses Visual Studio 2022 versions of tasks where appropriate. - MSBuild now targets .NET Framework 4.7.2 and .NET 6.0.
- 64-bit MSBuild is now used for builds from Visual Studio.
- Binary logs are smaller and have more information.
MSBuildCopyContentTransitively
is now on by default, ensuring consistency in output folders on incremental builds.- The method
GetType()
can no longer be called in property functions.
Detailed release notes
Added
- Intrinsic tasks now log their location (#6397). Thanks, @KirillOsenkov!
TargetSkippedEventArgs
now hasTargetSkipReason
andOriginalBuildEventContext
(#6402, #6577). Thanks, @KirillOsenkov!TaskStarted
events now log line and column (#6399). Thanks, @KirillOsenkov!- ETW trace events for PerformDependencyAnalysis (#6658), WriteLinesToFile (#6670), CopyUpToDate (#6661).
- If the environment variable
MSBuildDebugEngine
is set, MSBuild will create binary logs for all operations toMSBUILDDEBUGPATH
regardless of how it is called (#6639, #6792). ProjectReference
s can now negotiatePlatform
(#6655, #6724, #6889).- Tasks can now call
TaskLoggingHelper.LogsMessagesOfImportance
to determine if any attached logger would preserve a log message before constructing it (to save time in the not-being-logged case) (#6381, #6737). - Support referencing assemblies with generic attributes (#6735). Thanks, @davidwrighton!
- XSD-based MSBuild IntelliSense now supports
ImplicitUsings
andUsing
items (#6755),InternalsVisibleTo
(#6778), Windows Forms properties (#6860),DebugType
(#6849), andSatelliteResourceLanguages
(#6861). Thanks, @pranavkm, @DamianEdwards, @RussKie, and @drewnoakes! - Tasks can now call
TaskLoggingHelper.IsTaskInputLoggingEnabled
and avoid redundant logging of inputs (#6803). - Support extracting resource namespace from C# source that uses file-scoped namespaces (#6881).
Changed
- The on-disk format of serialized caches has changed (#6350, #6324, #6490, #6674).
- MSBuild is now signed with a new certificate (#6448).
BuildParameters.DisableInprocNode
now applies to more processes (#6400).VCTargetsPath
now defaults tov170
(#6550).- MSBuild no longer logs
Building with tools version "Current"
(#6627). Thanks, @KirillOsenkov! - Text loggers now log properties and items at the end of evaluation (#6535).
MSBuildCopyContentTransitively
is now on by default, ensuring consistency in output folders on incremental builds (#6622, #6703).- MSBuild on .NET 6 has improved task-assembly-reference fallback behavior (#6558).
- MSBuild features gated on the 16.8 changewave are now nonconfigurable (#6634).
- The deprecated import of
$(CoreCrossTargetingTargetsPath)
was removed (#6668). Thanks, @Nirmal4G! - Improved error message for
MSB4213
(#6640). - The method
GetType()
can no longer be called in property functions (#6769). - MSBuild is now fully NGENed by Visual Studio setup (#6764).
- MSBuild (and Visual Studio) now reference
System.Text.Json
5.0.2 (#6784). Thanks, @JakeRadMSFT! - Default to SHA2 digest for ClickOnce manifest when certificate signing algorithm is sha256/384/512 (#6882).
Fixed
- Solution builds should work when using the secret environment variable
MSBUILDNOINPROCNODE
(#6385). - Solution extensions can now use
BeforeTargets="ValidateSolutionConfiguration"
(#6454). - Performance improvements (#6529, #6556, #6598, #6632, #6669, #6671, #6666, #6678, #6680, #6705, #6595, #6716, #6786, #6816, #6832, #6845).
- Single-file ClickOnce publish includes file association icons (#6578).
- Improved robustness in error handling of libraries without resources (#6546).
- Fixed missing information in
Project
'sDebuggerDisplay
(#6650). ResolveAssemblyReferences
output paths are now output in normalized form (#6533).- Improved handling of satellite assemblies in ClickOnce (#6665).
- Roslyn code analyzers are no longer run during XAML precompilation (#6676). Thanks, @jlaanstra!
- 64-bit API callers no longer need to set
MSBUILD_EXE_PATH
(#6683, #6746). EvaluateStop
ETW events are now automatically correlated withEvaluateStart
(#6725).- Evaluation time is included in text performance traces (#6725).
- Add PackageDescription to
Microsoft.NET.StringTools
(#6740). - Fixed deadlock between
ExecuteSubmission
andLoggingService
(#6717). - Narrowed conditions where MSBuild would blame NuGet for SDK resolution problems (#6742).
CombineTargetFrameworkInfoProperties
no longer fails on portable framework names (#6699).- Avoid needless builds of
GenerateBindingRedirects
(#6726). - The solution configuration is now passed to experimental cache plugins (#6738).
- Clearer errors when SDK resolvers throw exceptions (#6763).
- Improved errors from
InternableString.ExpensiveConvertToString
(#6798). - Binding redirects for all
System.*
assemblies updated (#6830). - Fixed deadlock between
BuildManager
andLoggingService
(#6837). - Log message arguments for warnings and errors (#6804). Thanks, @KirillOsenkov!
- Use static CoreClrAssemblyLoader for SDK resolvers (#6864). Thanks, @marcin-krystianc!
- Avoid break caused by fix and workaround for AL path colliding (#6884).
- Support private-use area Unicode characters in paths passed to
XslTransformation
(#6863, #6946). Thanks, @lanfeust69! - Use the correct .NET host when called from a .NET 6.0 application (#6890).
Infrastructure
- This repo now builds with Arcade 6.0 (#6143).
- Use newer Ubuntu versions for Linux CI builds (#6488).
- MSBuild now uses Arcade-powered source build (#6387).
- Improved repo issue templates and automation (#6557).
- Whitespace cleanup (#6565).
- This repo no longer needs to double-specify the SDK version (#6596).
- Simplify references to
TargetFramework
using new intrinsics (#5799). - Reference the
Microsoft.DotNet.XUnitExtensions
package from Arcade instead of our fork (#6638). - Use
BannedApiAnalyzers
(#6675). - Enable analyzers for the MSBuild repo with rules similar to
dotnet/runtime
(#5656). Thanks, @elachlan! - Improved internal OptProf training scenarios (#6758).
- Delete Unreachable code (#6805). Thanks, @KirillOsenkov!
- Upgrade System.Net.Http package version used in tests (#6879).