Repository navigation
Fix AbsolutePath.GetCanonicalForm process state leak on Windows - #13788
Merged
OvesN merged 7 commits intoJun 3, 2026
Merged
Conversation
OvesN
force-pushed
the
dev/veronikao/fix-absolutepath-canonicalform-leak-13748
branch
from
May 15, 2026 15:21
61f2570 to
68dbbfa
Compare
…h on Windows (#13748) On Windows, Path.Combine 'resets' on a rooted second argument, so AbsolutePath(string, AbsolutePath) was leaving root-relative ('\foo') and drive-relative ('X:foo') inputs as Value unchanged. The result was a path that was rooted but not fully qualified — i.e. not a valid absolute path. Any subsequent use of Value (direct I/O or GetCanonicalForm) then resolved the path against process-global state (current drive, per-drive cwd), producing non-deterministic results across host processes and breaking multithreaded task isolation. Anchor those shapes against basePath inside the constructor using purely string-based operations, so Value is always a valid, fully qualified absolute path. GetCanonicalForm is left untouched and continues to call System.IO.Path.GetFullPath(string) — preserving its existing canonicalization semantics (including invalid-character rejection) across .NET and .NET Framework. The two-argument Path.GetFullPath overload is intentionally avoided: on .NET Framework it lives in Microsoft.IO.Path with different internal logic. Adds regression theory GetCanonicalForm_WindowsRootedButNotFullyQualifiedPath_AnchorsToBasePath_NotProcessState covering both root-relative and drive-relative inputs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
OvesN
force-pushed
the
dev/veronikao/fix-absolutepath-canonicalform-leak-13748
branch
from
May 15, 2026 15:39
68dbbfa to
839fd38
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR addresses non-deterministic Windows path canonicalization in Microsoft.Build.Framework.AbsolutePath by ensuring rooted-but-not-fully-qualified inputs (e.g. \foo, X:foo) are anchored to the provided base path rather than process-global state (current drive / per-drive CWD), improving multithreaded task isolation.
Changes:
- Updates
AbsolutePath(string, AbsolutePath)to pre-anchor Windows rooted-but-not-fully-qualified shapes during construction via a helper. - Adds a Windows-only regression theory covering root-relative, drive-relative, UNC, and device-path base paths to ensure determinism for both
ValueandGetCanonicalForm(). - (Review finding) The anchoring logic is currently excluded from the
.NETStandardTFM, leaving the original behavior there.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/Framework/PathHelpers/AbsolutePath.cs | Adds Windows anchoring logic to avoid Path.GetFullPath resolving against process-global state for certain rooted-but-not-fully-qualified inputs. |
| src/Framework.UnitTests/AbsolutePath_Tests.cs | Adds Windows-only regression coverage asserting construction and canonicalization are anchored to the supplied base path. |
JanProvaznik
left a comment
Member
There was a problem hiding this comment.
the base idea is right
only must fix is the static
JanProvaznik
approved these changes
May 26, 2026
AR-May
requested changes
May 28, 2026
AR-May
approved these changes
Jun 3, 2026
OvesN
enabled auto-merge (squash)
June 3, 2026 08:18
This was referenced Jun 4, 2026
This was referenced Aug 11, 2026
This was referenced Oct 14, 2026
Closed
Merged
This was referenced Oct 22, 2026
ScottishTapWater
added a commit
to GoSimulate/DimensionalQuantities
that referenced
this pull request
Oct 22, 2026
Updated [Microsoft.Build](https://github.com/dotnet/msbuild) from 18.6.3 to 18.9.6. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.9.6 ## What's Changed * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13793 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13859 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13858 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13863 * CsWin32 follow-up: CLR metadata + TypeLib interop migration by @JeremyKuhne in dotnet/msbuild#13853 * Update vmr-sb-validation.yml for Azure Pipelines by @meghnave in dotnet/msbuild#13871 * Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat (#13734) by @jankratochvilcz in dotnet/msbuild#13878 * Add vs18.8 to merge-flow config by @OvesN in dotnet/msbuild#13877 * Stable branding for 18.8 release by @OvesN in dotnet/msbuild#13883 * Bump main to 18.9.0 after vs18.8 snap by @OvesN in dotnet/msbuild#13880 * Avoid checkout in insertion pipeline by @rainersigwald in dotnet/msbuild#13887 * Report actual launch path in MSB4216 for Runtime="NET" task host by @ViktorHofer in dotnet/msbuild#13889 * Migrate Tlblmp and AxImp to Multithreaded Execution by @AlesProkop in dotnet/msbuild#13708 * Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers by @DustinCampbell in dotnet/msbuild#13790 * Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by @JeremyKuhne in dotnet/msbuild#13899 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#13905 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13907 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#13910 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13908 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13906 * Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by @huulinhnguyen-dev in dotnet/msbuild#13767 * Improve symlink cycle condition by @GangWang01 in dotnet/msbuild#13901 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13904 * Add flaky-test detection and auto-fix agentic workflows by @ViktorHofer in dotnet/msbuild#13915 * Quote --ignore-exit-code values so the quarantine pipeline does not shell-split on Unix by @ViktorHofer in dotnet/msbuild#13918 * Fix flaky-test detector PR-evidence loss and raise scan limits by @ViktorHofer in dotnet/msbuild#13919 * Tighten the pr review agent by @JanKrivanek in dotnet/msbuild#13921 * Add environment variables for governance detection by @ViktorHofer in dotnet/msbuild#13920 * Change IsPackable to true and add IsShipping flag by @ViktorHofer in dotnet/msbuild#13924 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13911 * Make flaky detector verify recurrence postdates the fix before commenting by @ViktorHofer in dotnet/msbuild#13930 * Fix AbsolutePath.GetCanonicalForm process state leak on Windows by @OvesN in dotnet/msbuild#13788 * Fix flaky detector: unblock dnceng feed, fail fast, and defer quarantine to a second run by @ViktorHofer in dotnet/msbuild#13936 * Update documentation for ImplicitUsings element by @drewnoakes in dotnet/msbuild#13900 * [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main by @AlesProkop in dotnet/msbuild#13923 * Add CS8618 suppressor for required MSBuild task properties by @AArnott in dotnet/msbuild#13926 * Tighten NodeLaunchData.EnvironmentOverrides nullability to IDictionary<string, string?>? by @OvesN with @Copilot in dotnet/msbuild#13815 * Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) by @YuliiaKovalova in dotnet/msbuild#13917 * [automated] Merge branch 'vs18.6' => 'vs18.7' by @github-actions[bot] in dotnet/msbuild#13941 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14192258 by @dotnet-bot in dotnet/msbuild#13849 * Bumping to 10.0.8 runtime packages by @OvesN in dotnet/msbuild#13898 * Flaky-test workflow: reassure on empty PR list + drop local reproduction (quarantine-first) by @ViktorHofer in dotnet/msbuild#13938 * [Flaky Test] Un-quarantine 5 consistently-green tests by @github-actions[bot] in dotnet/msbuild#13952 * Flaky-test detector: open PRs ready-for-review; drop newly-filed-issues section from PR body by @ViktorHofer in dotnet/msbuild#13958 * [Flaky Test] Quarantine 4 flaky tests by @github-actions[bot] in dotnet/msbuild#13937 * Flaky-test: fix duplicate-issue bug by switching dedup key to a visible code-block key by @ViktorHofer in dotnet/msbuild#13963 * CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining hand-rolled interop by @JeremyKuhne in dotnet/msbuild#13872 * Add the reviewer release skill checking if the Learn article Change waves is updated by @GangWang01 in dotnet/msbuild#13840 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#13977 ... (truncated) ## 18.8.2 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12550 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12739 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12740 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12743 * Add clear error message (MSB4233) for .NET runtime tasks on MSBuild 17.14 by @baronfel with @Copilot in dotnet/msbuild#12662 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12759 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12760 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12762 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12744 * Remove audit sources from NuGet.config by @YuliiaKovalova in dotnet/msbuild#12796 * Bump System.Configuration.ConfigurationManager to 6.0.0 # by @YuliiaKovalova in dotnet/msbuild#12795 * Enable localization for vs17.14 build by @YuliiaKovalova in dotnet/msbuild#12799 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12814 * [vs17.14] Add test summary always in terminal logger by @nohwnd in dotnet/msbuild#12852 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12575 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12889 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12892 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12891 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 12921813 by @dotnet-bot in dotnet/msbuild#12897 * Disable Localization for vs17.14 by @YuliiaKovalova in dotnet/msbuild#12903 * [automated] Merge branch 'vs16.11' => 'vs17.8' by @github-actions[bot] in dotnet/msbuild#12798 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12815 * [automated] Merge branch 'vs17.14' => 'vs18.0' by @github-actions[bot] in dotnet/msbuild#12917 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12934 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12935 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12941 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12940 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12939 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12966 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12965 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#12964 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13038 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13049 * [vs18.0] Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by @github-actions[bot] in dotnet/msbuild#13039 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13037 * [automated] Merge branch 'vs18.0' => 'vs18.3' by @github-actions[bot] in dotnet/msbuild#13052 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13101 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13098 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13100 * [vs18.3] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13102 * Backflow 10.0.2xx VMR by @dkurepa in dotnet/msbuild#13121 * Disable localization for vs18.0 in build configuration by @YuliiaKovalova in dotnet/msbuild#13164 * Disable localization for vs18.3 by @YuliiaKovalova in dotnet/msbuild#13165 * [vs18.3] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13161 * [vs18.3] Stabilize package versions by @JanProvaznik in dotnet/msbuild#13233 * [vs18.3] Add Managed Identity for bootstrapper creation by @github-actions[bot] in dotnet/msbuild#13249 * [automated] Merge branch 'vs18.0' => 'vs18.3' by @github-actions[bot] in dotnet/msbuild#13167 * [vs18.3] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13228 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13159 ... (truncated) ## 18.7.1 ## What's Changed * Fix TraceEngine file contention deadlock in multithreaded mode by @JanProvaznik in dotnet/msbuild#13446 * Remove duplicate test cases in MultithreadableTaskAnalyzer by @Youssef1313 in dotnet/msbuild#13483 * Ensure ThreadSafeTaskAnalyzer.Tests is considered as a unit test project by @Youssef1313 in dotnet/msbuild#13481 * Fix MSBuildTask0002 analyzer warnings in already-migrated tasks by @JanProvaznik in dotnet/msbuild#13466 * Fix race conditions in task host path resolution by @AR-May in dotnet/msbuild#13485 * Migrate ToolTask and Al task to TaskEnvironment API by @OvesN in dotnet/msbuild#13423 * Bump main to 18.7, add vs18.6 to merge flow by @MichalPavlik in dotnet/msbuild#13472 * Avoid allocations in GetHashCode implementations by @DustinCampbell in dotnet/msbuild#13475 * Add PATs rotation to agentic workflow(s) by @JanKrivanek in dotnet/msbuild#13496 * Fix ASP.NET WebSite projects to copy netstandard.dll facade when required by @JanProvaznik in dotnet/msbuild#13058 * Migrate AspNetCompiler to TaskEnvironment API by @OvesN in dotnet/msbuild#13424 * Add review workflow by @JanKrivanek in dotnet/msbuild#13503 * Strengthen reviewer skill: add step-back analysis dimensions by @JanProvaznik in dotnet/msbuild#13504 * Add 'Request Speedometer Perf Run' to VS experimental insertion build policies by @Copilot in dotnet/msbuild#13505 * Remove duplicate @ prefix from issueAuthor in GitOps by @akoeplinger in dotnet/msbuild#13492 * Improve review aw by @JanKrivanek in dotnet/msbuild#13510 * Migrates unit tests to use RoslynCodeTaskFactory to enable running tests under .NET Core by @jankratochvilcz in dotnet/msbuild#13500 * Fix cross-AppDomain TaskItem modifier cache regression by @DustinCampbell in dotnet/msbuild#13493 * Discourage review agent from approving PRs by @JanKrivanek in dotnet/msbuild#13512 * Stop trying to deploy ValueTuple by @rainersigwald in dotnet/msbuild#13507 * Ad-hoc re-sign bootstrap dotnet on macOS to prevent SIGKILL by @jankratochvilcz in dotnet/msbuild#13513 * RoslynCodeTaskFactory: Log MSB3753 when task class does not implement ITask by @jankratochvilcz in dotnet/msbuild#13517 * Update gh-aw (upon mcp policy changes) by @JanKrivanek in dotnet/msbuild#13526 * Eliminate XmlChildNodes allocations in GetXmlNodeInnerContents by @nareshjo in dotnet/msbuild#13509 * Fix telemetry allocation regression: per-engine collector ownership by @JanProvaznik in dotnet/msbuild#13516 * Migrate to xunit.v3 by @Youssef1313 in dotnet/msbuild#13482 * Fix stray brace in HandleBuildCancel trace string causing MSB1025 by @Copilot in dotnet/msbuild#13535 * Bumping to 10.0.4 runtime packages by @MichalPavlik in dotnet/msbuild#13533 * Remove early return in GetCanonicalForm, always call System.IO.Path by @OvesN in dotnet/msbuild#13532 * Do not overwrite GetCopyToOutputDirectoryItemsDependsOn, just add new… by @snechaev in dotnet/msbuild#13474 * Migrate GetReferenceAssemblyPaths task to TaskEnvironment API by @OvesN in dotnet/msbuild#13495 * Stabilize ToolTaskThatTimeoutAndRetry test by @rainersigwald in dotnet/msbuild#13489 * [automated] Merge branch 'vs18.6' => 'main' by @github-actions[bot] in dotnet/msbuild#13506 * Add extra test assertions around tests by @Youssef1313 in dotnet/msbuild#13536 * Add static eval for repo skills/agents via skill-validator by @JanKrivanek in dotnet/msbuild#13537 * Migrate SGen task to Task environment API by @OvesN in dotnet/msbuild#13457 * Fix TerminalLogger assert failure for metaproj files and cached project eval ID by @OvesN in dotnet/msbuild#13480 * Filter out approving review from pr-reviewer agent by @JanKrivanek in dotnet/msbuild#13553 * Use a unique task name per invocation to tabilize RoslynCodeTaskFactory_ReuseCompilation test by @huulinhnguyen-dev in dotnet/msbuild#13551 * Brief doc on feedback/logging/data systems by @rainersigwald in dotnet/msbuild#13554 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13881982 by @dotnet-bot in dotnet/msbuild#13437 * Stage 3: Forward BuildProjectFile* callbacks from OOP TaskHost to worker node by @JanProvaznik in dotnet/msbuild#13350 * Enable TaskHost Callbacks by default by @JanProvaznik in dotnet/msbuild#13579 * Remove unactionable info from reviewer agent by @JanKrivanek in dotnet/msbuild#13578 * Enlighten RequiresFramework35SP1Assembly task for multithreaded mode by @jankratochvilcz in dotnet/msbuild#13575 * Make SdkResolver-provided environment variables take precedence over ambient environment by @Copilot in dotnet/msbuild#12655 * Add dotnet/skills marketplace and enable plugins by @Evangelink in dotnet/msbuild#13582 * The skills/agents check filters-in only touched files by @JanKrivanek in dotnet/msbuild#13586 * Fix skill-validation workflow failing when agents directory is deleted by @JeremyKuhne in dotnet/msbuild#13592 ... (truncated) Commits viewable in [compare view](dotnet/msbuild@v18.6.3...v18.9.6). </details> Updated [Microsoft.CodeAnalysis.CSharp](https://github.com/dotnet/roslyn) from 5.0.0 to 5.9.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.CodeAnalysis.CSharp's releases](https://github.com/dotnet/roslyn/releases)._ ## 5.0.4 [Release](https://github.com/dotnet/core/releases/tag/v5.0.4) ## 5.0.2 [Release Notes](https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0.2/5.0.2.md) [Install Instructions](https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0.2/5.0.2-install-instructions.md) # Repos * [Core](https://github.com/dotnet/core/releases/tag/v5.0.2) ## 5.0.1 [Release Notes](https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0.1/5.0.1.md) [Install Instructions](https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0.1/5.0.1-install-instructions.md) # Repo * [Core](https://github.com/dotnet/core/releases/tag/v5.0.1) Commits viewable in [compare view](https://github.com/dotnet/roslyn/commits). </details> Updated [MSBuild.ProjectCreation](https://github.com/jeffkl/MSBuildProjectCreator) from 19.1.4 to 20.0.0. <details> <summary>Release notes</summary> _Sourced from [MSBuild.ProjectCreation's releases](https://github.com/jeffkl/MSBuildProjectCreator/releases)._ ## 20.0.0 ## What's Changed * Support for .NET 11 by @jeffkl in jeffkl/MSBuildProjectCreator#366 **Full Changelog**: jeffkl/MSBuildProjectCreator@v19.1.4...v20.0.0 Commits viewable in [compare view](jeffkl/MSBuildProjectCreator@v19.1.4...v20.0.0). </details> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: James McMahon <james@jamesmcmahon.co.uk> Co-authored-by: James McMahon <james.mcmahon@gosimulate.com>
This was referenced Oct 23, 2026
github-merge-queue Bot
pushed a commit
to microsoft/typespec
that referenced
this pull request
Oct 23, 2026
Updated [Microsoft.Build](https://github.com/dotnet/msbuild) from 17.14.28 to 18.11.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.11.0 ## What's Changed * Add vs18.10 to merge-flow config; retire vs18.7 by @AlesProkop in https://github.com/dotnet/msbuild/pull/14563 * Bump main to 18.11.0 after vs18.10 snap by @AlesProkop in https://github.com/dotnet/msbuild/pull/14564 * Phase out ChangeWaves 17.10, 17.12, 17.14 and 18.3 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14551 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14572 * Default XML tasks to prohibit DTDs and improve DTD error diagnostics by @VolPlita in https://github.com/dotnet/msbuild/pull/14285 * Don't log TaskAssemblyLocationMismatch for task-host-routed tasks by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14550 * Scope MSBuild server and coordinator resource names to the current user by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14543 * Promote MSBuild server out of Experimental namespace (#12099) by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13964 * Fix builds by adding missing using by @rainersigwald in https://github.com/dotnet/msbuild/pull/14587 * Add event-level task telemetry (build/tasks/details) by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13609 * Migrate ResolveCodeAnalysisRuleSet to multithreaded execution by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13636 * Use <inheritdoc /> for TaskEnvironment in ResolveCodeAnalysisRuleSet by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/14589 * Add aliases for configuration and test parameters in build scripts by @AR-May in https://github.com/dotnet/msbuild/pull/14591 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14617 * Emit assemblyName payload for FallbackAssemblyLoad EventSource events by @AR-May in https://github.com/dotnet/msbuild/pull/14014 * Bump github/gh-aw-actions/setup-cli from 0.83.3 to 0.84.1 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14611 * Bump github/gh-aw-actions/setup from 0.83.3 to 0.84.1 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14610 * Migrate GetAssembliesMetadata to multithreaded execution by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13637 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14619 * Fix concurrent BuildCheck callback mutation by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/14590 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14612 * Make experimental VS insertion reviewers configurable by @rainersigwald in https://github.com/dotnet/msbuild/pull/14632 * Fix NullReferenceException reporting file accesses for detoured nodes by @dfederm in https://github.com/dotnet/msbuild/pull/14602 * Scope .NET TaskHost handshake leniency to architecture by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14579 * Ensure MSBuild.csproj is included for Release|ARM64 by @KirillOsenkov in https://github.com/dotnet/msbuild/pull/14622 * Declare the Sdk element in Microsoft.Build.Core.xsd by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14637 * Call out MSBUILD_LOGGING_ARGS by @rainersigwald in https://github.com/dotnet/msbuild/pull/14641 * [Spec] Define MSBuild server child-process ownership by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14508 * Pre-buffer TaskHost packet bodies before deserialization by @AR-May in https://github.com/dotnet/msbuild/pull/14505 * Expose item glob patterns via MSBuildProvideItemGlobs by @drewnoakes in https://github.com/dotnet/msbuild/pull/14389 * Avoid republishing coverage artifacts on CI retries by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14423 * Make the resolved change wave part of the node handshake by @JanProvaznik with @Copilot in https://github.com/dotnet/msbuild/pull/14557 * Bump github/gh-aw-actions/setup from 0.84.1 to 0.86.1 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14665 * Bump github/gh-aw-actions/setup-cli from 0.84.1 to 0.86.1 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14664 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14672 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14677 * Give each transient MSBuild Server its own identity by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14647 * Don't discard the XML cache after restore when it reloads from disk by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14558 * Add TarDirectory and Untar tasks for creating and extracting tar archives by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14451 * Add Directory.Parse.config to skip unknown attributes/elements during parsing by @benwitmanmsft in https://github.com/dotnet/msbuild/pull/14588 * Revert branch freeze PowerShell automation by @AlesProkop in https://github.com/dotnet/msbuild/pull/14692 * Fix MT switch by @AR-May in https://github.com/dotnet/msbuild/pull/14682 * Document multi-request target crosstalk by @rainersigwald in https://github.com/dotnet/msbuild/pull/14403 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14698 * Keep project active through post-build telemetry by @AR-May in https://github.com/dotnet/msbuild/pull/14679 * Make eng/build.sh portable (don't hardcode /bin/bash) by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14707 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14709 * Drop stale secret group by @rainersigwald in https://github.com/dotnet/msbuild/pull/14710 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14713 ... (truncated) ## 18.10.1 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13103 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13796 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13902 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13903 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13909 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13986 * Add vs18.9 to merge-flow config; retire vs18.3 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14214 * Bump labeler-cache-retention to use issue-labeler v2.1.0 by @jeffhandley in https://github.com/dotnet/msbuild/pull/14171 * Bump main to 18.10.0 after vs18.9 snap by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14216 * Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic baseline by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14220 * Determinize release: hardcode OptProf baseline + Phase 3.2 baseline resolver by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14222 * Serialize BuildRequestConfiguration.RequestedTargets to fix solution metaproject MSB4057 in parallel builds by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14223 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14203 * Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T> as task parameters by @baronfel in https://github.com/dotnet/msbuild/pull/13971 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14206 * Fix existence cache kind poisoning by @AlesProkop in https://github.com/dotnet/msbuild/pull/14249 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14226 * Don't disable the MSBuild server for /mt builds when node reuse is off by @AR-May in https://github.com/dotnet/msbuild/pull/14248 * Enhance expert reviewer guidelines with additional checks. by @AR-May in https://github.com/dotnet/msbuild/pull/14255 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14253 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14268 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14267 * Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14266 * Avoid boxing the struct enumerator in PropertyDictionary<T>.GetEnumerator() by @nareshjo in https://github.com/dotnet/msbuild/pull/14272 * Refresh copy marker when implementation output changes by @AlesProkop in https://github.com/dotnet/msbuild/pull/14231 * Send task-host build process environment as delta by @OvesN in https://github.com/dotnet/msbuild/pull/14126 * Add regression coverage for metadata newline preservation by @VolPlita in https://github.com/dotnet/msbuild/pull/14261 * Fix EmbedInBinlog items with relative paths from child projects by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13990 * Stop requiring VersionPrefix updates in servicing - insert prerelease versions to VS by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14277 * Fix WriteLinesToFile rewriting unchanged file when custom encoding is used by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/14146 * Enable trim/AOT analyzers for Microsoft.Build and clean up annotations by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/14064 * [automated] Merge branch 'vs18.9' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/14291 * Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com format by @AlesProkop in https://github.com/dotnet/msbuild/pull/14295 * Pass ExcludeRestorePackageImports during restore to avoid redundant evaluations by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14274 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13988 * Adopt Clever Test Selection (CTS) as parallel, non-blocking PR pipeline by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/14212 * Harden exceptions when connecting to server by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14292 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13886 * Fix MSBuild Server client dropping build result under WaitAny race (#14172) by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14251 * Partially revert #13660: remove NuGet RestoreTask transient TaskHost workaround by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14297 * Disable daily AI credits guardrail for Expert Code Review workflow by @JanProvaznik with @Copilot in https://github.com/dotnet/msbuild/pull/14314 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14614733 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/14246 * Add opt-in partial (stop-after-pass) project evaluation by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14290 * Use partial evaluation for -getProperty/-getItem without a target by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14296 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14324 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14333 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14330 * Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14328 * Restrict partial evaluation to ProjectInstance by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14340 ... (truncated) ## 18.9.6 ## What's Changed * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13793 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13859 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13858 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13863 * CsWin32 follow-up: CLR metadata + TypeLib interop migration by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13853 * Update vmr-sb-validation.yml for Azure Pipelines by @meghnave in https://github.com/dotnet/msbuild/pull/13871 * Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat (#13734) by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13878 * Add vs18.8 to merge-flow config by @OvesN in https://github.com/dotnet/msbuild/pull/13877 * Stable branding for 18.8 release by @OvesN in https://github.com/dotnet/msbuild/pull/13883 * Bump main to 18.9.0 after vs18.8 snap by @OvesN in https://github.com/dotnet/msbuild/pull/13880 * Avoid checkout in insertion pipeline by @rainersigwald in https://github.com/dotnet/msbuild/pull/13887 * Report actual launch path in MSB4216 for Runtime="NET" task host by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13889 * Migrate Tlblmp and AxImp to Multithreaded Execution by @AlesProkop in https://github.com/dotnet/msbuild/pull/13708 * Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13790 * Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13899 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13905 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13907 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13910 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13908 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13906 * Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13767 * Improve symlink cycle condition by @GangWang01 in https://github.com/dotnet/msbuild/pull/13901 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13904 * Add flaky-test detection and auto-fix agentic workflows by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13915 * Quote --ignore-exit-code values so the quarantine pipeline does not shell-split on Unix by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13918 * Fix flaky-test detector PR-evidence loss and raise scan limits by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13919 * Tighten the pr review agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13921 * Add environment variables for governance detection by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13920 * Change IsPackable to true and add IsShipping flag by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13924 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13911 * Make flaky detector verify recurrence postdates the fix before commenting by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13930 * Fix AbsolutePath.GetCanonicalForm process state leak on Windows by @OvesN in https://github.com/dotnet/msbuild/pull/13788 * Fix flaky detector: unblock dnceng feed, fail fast, and defer quarantine to a second run by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13936 * Update documentation for ImplicitUsings element by @drewnoakes in https://github.com/dotnet/msbuild/pull/13900 * [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main by @AlesProkop in https://github.com/dotnet/msbuild/pull/13923 * Add CS8618 suppressor for required MSBuild task properties by @AArnott in https://github.com/dotnet/msbuild/pull/13926 * Tighten NodeLaunchData.EnvironmentOverrides nullability to IDictionary<string, string?>? by @OvesN with @Copilot in https://github.com/dotnet/msbuild/pull/13815 * Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13917 * [automated] Merge branch 'vs18.6' => 'vs18.7' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13941 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14192258 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13849 * Bumping to 10.0.8 runtime packages by @OvesN in https://github.com/dotnet/msbuild/pull/13898 * Flaky-test workflow: reassure on empty PR list + drop local reproduction (quarantine-first) by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13938 * [Flaky Test] Un-quarantine 5 consistently-green tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13952 * Flaky-test detector: open PRs ready-for-review; drop newly-filed-issues section from PR body by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13958 * [Flaky Test] Quarantine 4 flaky tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13937 * Flaky-test: fix duplicate-issue bug by switching dedup key to a visible code-block key by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13963 * CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining hand-rolled interop by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13872 * Add the reviewer release skill checking if the Learn article Change waves is updated by @GangWang01 in https://github.com/dotnet/msbuild/pull/13840 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13977 ... (truncated) ## 18.8.2 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12550 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12739 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12740 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12743 * Add clear error message (MSB4233) for .NET runtime tasks on MSBuild 17.14 by @baronfel with @Copilot in https://github.com/dotnet/msbuild/pull/12662 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12759 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12760 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12762 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12744 * Remove audit sources from NuGet.config by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12796 * Bump System.Configuration.ConfigurationManager to 6.0.0 # by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12795 * Enable localization for vs17.14 build by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12799 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12814 * [vs17.14] Add test summary always in terminal logger by @nohwnd in https://github.com/dotnet/msbuild/pull/12852 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12575 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12889 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12892 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12891 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 12921813 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12897 * Disable Localization for vs17.14 by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12903 * [automated] Merge branch 'vs16.11' => 'vs17.8' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/12798 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12815 * [automated] Merge branch 'vs17.14' => 'vs18.0' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/12917 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12934 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12935 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12941 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12940 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12939 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12966 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12965 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12964 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13038 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13049 * [vs18.0] Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13039 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13037 * [automated] Merge branch 'vs18.0' => 'vs18.3' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13052 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13101 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13098 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13100 * [vs18.3] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13102 * Backflow 10.0.2xx VMR by @dkurepa in https://github.com/dotnet/msbuild/pull/13121 * Disable localization for vs18.0 in build configuration by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13164 * Disable localization for vs18.3 by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13165 * [vs18.3] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13161 * [vs18.3] Stabilize package versions by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13233 * [vs18.3] Add Managed Identity for bootstrapper creation by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13249 * [automated] Merge branch 'vs18.0' => 'vs18.3' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13167 * [vs18.3] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13228 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13159 ... (truncated) ## 18.7.1 ## What's Changed * Fix TraceEngine file contention deadlock in multithreaded mode by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13446 * Remove duplicate test cases in MultithreadableTaskAnalyzer by @Youssef1313 in https://github.com/dotnet/msbuild/pull/13483 * Ensure ThreadSafeTaskAnalyzer.Tests is considered as a unit test project by @Youssef1313 in https://github.com/dotnet/msbuild/pull/13481 * Fix MSBuildTask0002 analyzer warnings in already-migrated tasks by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13466 * Fix race conditions in task host path resolution by @AR-May in https://github.com/dotnet/msbuild/pull/13485 * Migrate ToolTask and Al task to TaskEnvironment API by @OvesN in https://github.com/dotnet/msbuild/pull/13423 * Bump main to 18.7, add vs18.6 to merge flow by @MichalPavlik in https://github.com/dotnet/msbuild/pull/13472 * Avoid allocations in GetHashCode implementations by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13475 * Add PATs rotation to agentic workflow(s) by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13496 * Fix ASP.NET WebSite projects to copy netstandard.dll facade when required by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13058 * Migrate AspNetCompiler to TaskEnvironment API by @OvesN in https://github.com/dotnet/msbuild/pull/13424 * Add review workflow by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13503 * Strengthen reviewer skill: add step-back analysis dimensions by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13504 * Add 'Request Speedometer Perf Run' to VS experimental insertion build policies by @Copilot in https://github.com/dotnet/msbuild/pull/13505 * Remove duplicate @ prefix from issueAuthor in GitOps by @akoeplinger in https://github.com/dotnet/msbuild/pull/13492 * Improve review aw by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13510 * Migrates unit tests to use RoslynCodeTaskFactory to enable running tests under .NET Core by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13500 * Fix cross-AppDomain TaskItem modifier cache regression by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13493 * Discourage review agent from approving PRs by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13512 * Stop trying to deploy ValueTuple by @rainersigwald in https://github.com/dotnet/msbuild/pull/13507 * Ad-hoc re-sign bootstrap dotnet on macOS to prevent SIGKILL by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13513 * RoslynCodeTaskFactory: Log MSB3753 when task class does not implement ITask by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13517 * Update gh-aw (upon mcp policy changes) by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13526 * Eliminate XmlChildNodes allocations in GetXmlNodeInnerContents by @nareshjo in https://github.com/dotnet/msbuild/pull/13509 * Fix telemetry allocation regression: per-engine collector ownership by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13516 * Migrate to xunit.v3 by @Youssef1313 in https://github.com/dotnet/msbuild/pull/13482 * Fix stray brace in HandleBuildCancel trace string causing MSB1025 by @Copilot in https://github.com/dotnet/msbuild/pull/13535 * Bumping to 10.0.4 runtime packages by @MichalPavlik in https://github.com/dotnet/msbuild/pull/13533 * Remove early return in GetCanonicalForm, always call System.IO.Path by @OvesN in https://github.com/dotnet/msbuild/pull/13532 * Do not overwrite GetCopyToOutputDirectoryItemsDependsOn, just add new… by @snechaev in https://github.com/dotnet/msbuild/pull/13474 * Migrate GetReferenceAssemblyPaths task to TaskEnvironment API by @OvesN in https://github.com/dotnet/msbuild/pull/13495 * Stabilize ToolTaskThatTimeoutAndRetry test by @rainersigwald in https://github.com/dotnet/msbuild/pull/13489 * [automated] Merge branch 'vs18.6' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13506 * Add extra test assertions around tests by @Youssef1313 in https://github.com/dotnet/msbuild/pull/13536 * Add static eval for repo skills/agents via skill-validator by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13537 * Migrate SGen task to Task environment API by @OvesN in https://github.com/dotnet/msbuild/pull/13457 * Fix TerminalLogger assert failure for metaproj files and cached project eval ID by @OvesN in https://github.com/dotnet/msbuild/pull/13480 * Filter out approving review from pr-reviewer agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13553 * Use a unique task name per invocation to tabilize RoslynCodeTaskFactory_ReuseCompilation test by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13551 * Brief doc on feedback/logging/data systems by @rainersigwald in https://github.com/dotnet/msbuild/pull/13554 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13881982 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13437 * Stage 3: Forward BuildProjectFile* callbacks from OOP TaskHost to worker node by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13350 * Enable TaskHost Callbacks by default by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13579 * Remove unactionable info from reviewer agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13578 * Enlighten RequiresFramework35SP1Assembly task for multithreaded mode by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13575 * Make SdkResolver-provided environment variables take precedence over ambient environment by @Copilot in https://github.com/dotnet/msbuild/pull/12655 * Add dotnet/skills marketplace and enable plugins by @Evangelink in https://github.com/dotnet/msbuild/pull/13582 * The skills/agents check filters-in only touched files by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13586 * Fix skill-validation workflow failing when agents directory is deleted by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13592 ... (truncated) ## 18.6.3 ## What's Changed * Improve cross-platform node discovery for reuse with NodeMode filtering by @Copilot in https://github.com/dotnet/msbuild/pull/13256 * Updated common types XSD to remove errors from redefining `Include` attributes by @glektarssza in https://github.com/dotnet/msbuild/pull/13284 * Update VersionPrefix to 18.6.0 + insertion flow by @MichalPavlik in https://github.com/dotnet/msbuild/pull/13296 * Log warnings for skipped STR resource keys instead of failing the build by @OvesN in https://github.com/dotnet/msbuild/pull/13291 * Isolate MSBuildTaskHost from the rest of MSBuild Codebase by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13232 * Improve error messages when ToolTask overrides exit code 0 to -1 due to logged errors by @OvesN in https://github.com/dotnet/msbuild/pull/13303 * Migrate Exec task to TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13171 * Enhance crash telemetry with richer diagnostics and EndBuild hang detection by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13304 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13309 * [IBuildEngine callbacks] Stage 2: RequestCores/ReleaseCores by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13306 * Only get command line args names on modern .NET by @baronfel in https://github.com/dotnet/msbuild/pull/13314 * Detect and correct worker node over-provisioning by @Copilot in https://github.com/dotnet/msbuild/pull/13220 * Add App Host Support for MSBuild by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13175 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13311 * Fix ObjectDisposedException in BuildsWhileBuildIsRunningOnServer test by @Copilot in https://github.com/dotnet/msbuild/pull/13316 * Add PoC of pipelines check skill by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13242 * Fix CodeSign.MissingSigningCert for xsd/Update-MSBuildXsds.ps1 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13320 * Fix task host launch regressions from apphost support by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13325 * Enlighten GetFrameworkPath and GetFrameworkSdkPath. by @AR-May in https://github.com/dotnet/msbuild/pull/13282 * Add VMR codeflow health check to pipelines skill by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13326 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13281 * Fix GenerateResource to track all ResXFileRef linked files for incremental builds by @OvesN in https://github.com/dotnet/msbuild/pull/13327 * Add escape hatch for not sharing assemblies from tools directory by @AR-May in https://github.com/dotnet/msbuild/pull/13305 * Add merge-dependency-updates skill for bot PR triage by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13331 * Add diagnostic data to crash/hang telemetry and move null-Project check after RetrieveFromCache by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13332 * Update remote-host-object.md with SDK .tlb shipping and IDispatch example by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13324 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13341 * improve task migration skill by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13234 * Fix telemetry PII concerns: sanitize exceptions, project paths, and custom names by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13344 * Use .exe.config when loading "as full Framework" by @rainersigwald in https://github.com/dotnet/msbuild/pull/13349 * Fix RequestCores/ReleaseCores fallback in OOP TaskHost: throw NotImplementedException instead of logging error by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13345 * Fixed indentation for _GetCopyToOutputDirectoryItemsFromTransitiveProjectReferences by @CEbbinghaus in https://github.com/dotnet/msbuild/pull/13358 * Fix Unix SessionId in handshake to enable cross-terminal node reuse by @JakeRadMSFT in https://github.com/dotnet/msbuild/pull/13354 * Revert "Migrate Exec task to TaskEnvironment API" by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13367 * Look for apphost when considering node reuse by @rainersigwald in https://github.com/dotnet/msbuild/pull/13368 * Move lots of shared code to Microsoft.Build.Framework by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13364 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13353 * Fix ScheduleTimeRecord.AccumulatedTime hang during solution close by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13375 * Update runtime package references to 10.0.3 by @Copilot in https://github.com/dotnet/msbuild/pull/13376 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13378 * Fix ProjectImports.zip regression from shared FileUtilities statics by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13382 * Enrich EndBuild hang diagnostics with logging service and submission state by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13385 * Enhance path normalization: add handling for consecutive directory separators by @tommcdon in https://github.com/dotnet/msbuild/pull/13369 * Move task environment drivers to Framework. by @AR-May in https://github.com/dotnet/msbuild/pull/13380 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13298 * Replace ProjectCacheService null Project crash with diagnostic telemetry by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13396 * Add agentic workflow to auto-close PRs older than 180 days by @Copilot in https://github.com/dotnet/msbuild/pull/13400 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13575337 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13394 * Respect MSBUILDPRESERVETOOLTEMPFILES in ProcessExit cleanup by @DmitriyShepelev in https://github.com/dotnet/msbuild/pull/13395 ... (truncated) ## 18.5.4 ## What's Changed * remove dead code by @SimaTian in https://github.com/dotnet/msbuild/pull/13125 * Update VersionPrefix to 18.5.0 + insertion flow by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13134 * add multithreaded task migration agent skill by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13131 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13139 * Migrate VerifyFileHash task to TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13112 * Migrate GetFileHash tasks to TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13111 * Diagram of VS/SDK component interactions by @rainersigwald in https://github.com/dotnet/msbuild/pull/13127 * Fix package validation telemetry assembly resolution warnings by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13144 * Adds validation to throw MSB4259 when property references contain leading or trailing whitespace outside of conditions. by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13076 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13203963 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13151 * Add MSBuild app host design by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12857 * Add Stabilize-Release.ps1 script for release process by @rainersigwald in https://github.com/dotnet/msbuild/pull/13146 * Fix chained item function empty result comparison in conditions by @JanProvaznik in https://github.com/dotnet/msbuild/pull/12901 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13162 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13160 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13217622 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13163 * Fix items logged as type name during -getitem argument by @Copilot in https://github.com/dotnet/msbuild/pull/13166 * Respect NetCoreSdkRoot property for TaskHostParameters by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13176 * Remove MachineIndependent configuration by @Copilot in https://github.com/dotnet/msbuild/pull/13180 * Remove redundant #nullable disable from 153 files by @Copilot in https://github.com/dotnet/msbuild/pull/13157 * Revert #13076 "Adds validation to throw MSB4259 when property references contain leading or trailing whitespace outside of conditions. by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13184 * Convert MSBuild.sln to slnx format and upate refs by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13185 * Implement IMultiThreadableTask for Move task by @Copilot in https://github.com/dotnet/msbuild/pull/13108 * Add hostservices translation support for clr 4 task host by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13154 * Handle null ProjectFile in InvalidProjectFileException by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13179 * Add $(LatestDotNetCoreForMSBuild) infrastructure for centralized framework targeting by @Copilot in https://github.com/dotnet/msbuild/pull/13189 * Fix TaskHost crash when task returns string[] with null elements by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13190 * Revert "Refactor Microsoft.IO usage" by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13194 * Allow null SdkResult from SdkResolver.Resolve by @rainersigwald in https://github.com/dotnet/msbuild/pull/13197 * Skill to test changes using just-built MSBuild by @rainersigwald in https://github.com/dotnet/msbuild/pull/13202 * Tell Copilot not to allow breaking changes by @rainersigwald in https://github.com/dotnet/msbuild/pull/13200 * Make nologo switch accept boolean values to enable explicit logo display control by @Copilot in https://github.com/dotnet/msbuild/pull/12541 * Migrate Unzip task to use TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13109 * Migrate ZipDirectory task to TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13110 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13246767 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13204 * Add .NET Standard compatibility warnings by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13187 * Make WriteCodeFragment task locale-independent for reproducible builds by @Copilot in https://github.com/dotnet/msbuild/pull/13192 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13249478 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13207 * Fix TerminalLogger IndexOutOfRangeException when replaying binlog with fewer nodes by @Copilot in https://github.com/dotnet/msbuild/pull/12809 * Migrate DownloadFile task to use TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13113 * Add CI job for 2-stage build with -mt mode by @Copilot in https://github.com/dotnet/msbuild/pull/13124 * Localize AbsolutePath validation messages by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13115 * Refactor FrameworkFileUtilities for better performance by @AR-May in https://github.com/dotnet/msbuild/pull/13143 * Add agent instructions for MSBuild repository by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13198 * Add GetCanonicalForm to the AbsolutePath API by @AR-May in https://github.com/dotnet/msbuild/pull/13088 * Shouldly 4.3.0 by @rainersigwald in https://github.com/dotnet/msbuild/pull/13213 * Migrate WriteCodeFragment task to use TaskEnvironment API by @Copilot in https://github.com/dotnet/msbuild/pull/13169 * Run the issue-labeler over pull requests using polling by @Copilot in https://github.com/dotnet/msbuild/pull/13223 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13225 ... (truncated) ## 18.4.0 ## What's Changed * Fix terminal logger quiet mode to show project context for warnings/errors by @Copilot in https://github.com/dotnet/msbuild/pull/12930 * Replace OpenTelemetry with Microsoft.VisualStudio.Telemetry for VS by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12843 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13050856 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12982 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12979 * eliminate test data serialization warnings by @JanProvaznik in https://github.com/dotnet/msbuild/pull/12983 * Add the feature flag that allows users to opt out automatic UTF8 console encoding by @GangWang01 in https://github.com/dotnet/msbuild/pull/12637 * Polyfill clean up and source package organization by @DustinCampbell in https://github.com/dotnet/msbuild/pull/12977 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13052367 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12984 * Add documentation for enabling binlog collection via env var by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12805 * Support multiple binary logs from command line arguments by @Copilot in https://github.com/dotnet/msbuild/pull/12706 * Add VcxprojReader.exe to ngenApplications by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12986 * Add HostServices support in Out-of-Process Task Host by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12753 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13002 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13000 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13078382 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13003 * Add telemetry tracking for task factory names and runtime usage by @Copilot in https://github.com/dotnet/msbuild/pull/12989 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12987 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13079827 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13010 * Snap for VS 18.3 and update branding to VS 18.4 by @Copilot in https://github.com/dotnet/msbuild/pull/13005 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13012 * Add telemetry to categorize build failure reasons by @Copilot in https://github.com/dotnet/msbuild/pull/13007 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13011 * Update OptProf drop metadata configuration by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13020 * Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by @Copilot in https://github.com/dotnet/msbuild/pull/13036 * CmdLine parsing was extracted from XMake and the implementation is visible to dotnet (attempt 2) by @MichalPavlik in https://github.com/dotnet/msbuild/pull/12836 * Make task environment path absolutization not throw. by @AR-May in https://github.com/dotnet/msbuild/pull/13035 * Fix flaky test TestTerminalLoggerTogetherWithOtherLoggers by @Copilot in https://github.com/dotnet/msbuild/pull/13044 * Enlighten more tasks that require no change by @AR-May in https://github.com/dotnet/msbuild/pull/13045 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13050 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13048 * Add support for MSBUILD_LOGGING_ARGS by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12993 * Fix MSBuildEventSource by @dfederm in https://github.com/dotnet/msbuild/pull/13030 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13124182 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13053 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13031 * Add incrementality tracking support and more detailed analysis of the build errors reported by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13057 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13055 * Enable com support for clr4 in task host by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13033 * Add 'rel/d18.3' to insertion target branch options by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13067 * add OriginalValue property to AbsolutePath by @JanProvaznik in https://github.com/dotnet/msbuild/pull/13077 * [automated] Merge branch 'vs18.3' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13074 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137486 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13075 * Refactor FileUtilities.cs and add methods for absolute paths. by @AR-May in https://github.com/dotnet/msbuild/pull/13079 * Limit extended flag usage to NET and CLR4 runtimes by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13080 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13065 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 13137926 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13081 * Update to 10.0.1 references by @rainersigwald in https://github.com/dotnet/msbuild/pull/13072 * Undo COM support in out of proc task host CLR4 by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13089 * Add Managed Identity for bootstrapper creation by @rainersigwald in https://github.com/dotnet/msbuild/pull/13092 * Add warning MSB4280 when DOTNET_HOST_PATH is set to a directory by @Copilot in https://github.com/dotnet/msbuild/pull/13091 ... (truncated) ## 18.3.3 ## What's Changed * Streamline BuildGlobResultFromIncludeItem by @Erarndt in https://github.com/dotnet/msbuild/pull/12178 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12576 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12573 * Add new project telemetry to telemetry documentation by @AR-May in https://github.com/dotnet/msbuild/pull/12565 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12574 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12564 * Add 17.14->18.0->main automerges by @rainersigwald in https://github.com/dotnet/msbuild/pull/12567 * Perf: Reimplement Lookup.Scope tables without ItemDictionary by @ccastanedaucf in https://github.com/dotnet/msbuild/pull/12320 * Report line number in app.config error by @rainersigwald in https://github.com/dotnet/msbuild/pull/12535 * Use Builder in ImmutableDictionary.SetItems extension by @ccastanedaucf in https://github.com/dotnet/msbuild/pull/12402 * Thread-Safe Tasks spec by @AR-May in https://github.com/dotnet/msbuild/pull/12111 * Branding for 18.1 by @AR-May in https://github.com/dotnet/msbuild/pull/12586 * Fix Copy task case sensitivity issue on Unix systems by @Copilot in https://github.com/dotnet/msbuild/pull/12147 * Add null check for environmentVariableProperties by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12594 * Clarify property tracking capabilities in documentation by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12600 * enable out of process execution of inline tasks by @JanProvaznik in https://github.com/dotnet/msbuild/pull/11948 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12605 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12604 * [automated] Merge branch 'vs18.0' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/12592 * Remove outdated logging + fix the test by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12607 * Move version label next to version prefix by @AR-May in https://github.com/dotnet/msbuild/pull/12609 * Perf: Avoid unnecessary ProjectMetadataInstance allocations by @ccastanedaucf in https://github.com/dotnet/msbuild/pull/12599 * Allow NodeProviderOutOfProcTaskHost to manage multiple nodes instead of one per arch by @surayya-MS in https://github.com/dotnet/msbuild/pull/12577 * Systematically use FileSystems abstraction instead of BCL file operations by @Copilot in https://github.com/dotnet/msbuild/pull/12602 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 12531490 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12613 * Enable code coverage for Linux/Mac by @fhnaseer in https://github.com/dotnet/msbuild/pull/11920 * Fix the crash when doing preprocess by @GangWang01 in https://github.com/dotnet/msbuild/pull/12396 * Track subclasses of MSBuild tasks for telemetry by @Copilot in https://github.com/dotnet/msbuild/pull/12623 * Update localization comment for main by @AR-May in https://github.com/dotnet/msbuild/pull/12618 * Perf: Use struct for WorkUnitResult by @ccastanedaucf in https://github.com/dotnet/msbuild/pull/12403 * Revert "Smaller thread stack size for copy threads" by @JanProvaznik in https://github.com/dotnet/msbuild/pull/12626 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 12551716 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12628 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 12558527 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12629 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12635 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12634 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 12567344 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/12633 * allow a parameter to disable the live-updating nodes display by @baronfel in https://github.com/dotnet/msbuild/pull/12581 * Drafts of build scenario and persistent-problems docs by @rainersigwald in https://github.com/dotnet/msbuild/pull/11002 * Lookup.ExplicitModifications switch to concrete dictionary type for enumerator. by @ttstanley in https://github.com/dotnet/msbuild/pull/11985 * Add new multithreaded APIs by @AR-May in https://github.com/dotnet/msbuild/pull/12625 * /mt implies inline task factories out of proc by @JanProvaznik in https://github.com/dotnet/msbuild/pull/12614 * Fix bug with not passing scheduled node id to the task host task by @AR-May in https://github.com/dotnet/msbuild/pull/12639 * Remove audit sources from NuGet.config by @akoeplinger in https://github.com/dotnet/msbuild/pull/12641 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12673 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12674 * Update codeflow metadata to fix backflow by @premun in https://github.com/dotnet/msbuild/pull/12678 * Optimize for single capture case by @Erarndt in https://github.com/dotnet/msbuild/pull/12569 * [automated] Merge branch 'vs18.0' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/12685 * Multithreaded task routing by @JanProvaznik in https://github.com/dotnet/msbuild/pull/12617 ... (truncated) ## 18.0.2 ## What's Changed * asking terminal for dimensions during every frame is expensive by @SimaTian in https://github.com/dotnet/msbuild/pull/11504 * Fix the head parameter when search the created PRs by @JaynieBai in https://github.com/dotnet/msbuild/pull/11569 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11552 * Fix test to take warning MSB5018 by @JaynieBai in https://github.com/dotnet/msbuild/pull/11499 * Update tsa config by @AR-May in https://github.com/dotnet/msbuild/pull/11578 * Switch to AwesomeAssertions by @rainersigwald in https://github.com/dotnet/msbuild/pull/11577 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11581 * Update branding to 17.15 by @maridematte in https://github.com/dotnet/msbuild/pull/11582 * using virtual fuction instead of reflection by @SimaTian in https://github.com/dotnet/msbuild/pull/11513 * Address some low-hanging fruit to use newer/better .NET features by @stephentoub in https://github.com/dotnet/msbuild/pull/11448 * Delete .exp-insertions.yml by @JanProvaznik in https://github.com/dotnet/msbuild/pull/11601 * Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @vikukush in https://github.com/dotnet/msbuild/pull/11167 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11600 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11587 * Add null check when iterating through TargetOutputs in terminal logger by @mruxmohan4 in https://github.com/dotnet/msbuild/pull/11606 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11572 * Assert instead of ! for nullable by @rainersigwald in https://github.com/dotnet/msbuild/pull/11545 * Consolidate common IPC / named pipe code by @ccastanedaucf in https://github.com/dotnet/msbuild/pull/11546 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11592 * Update maintenance-packages versions by @carlossanlop in https://github.com/dotnet/msbuild/pull/11457 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11615 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11590 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11273384 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/11608 * Don't force shipping versions to be used in VMR builds by @jkoritzinsky in https://github.com/dotnet/msbuild/pull/11625 * Fix url formatting in BuildCheck/Codes.md by @MaceWindu in https://github.com/dotnet/msbuild/pull/11631 * `/documentation/specs/*.md` formatting/linting/cleanup by @BenjaminBrienen in https://github.com/dotnet/msbuild/pull/11611 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11285593 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/11639 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11599 * add telemetry e2e test, address code quality issues by @JanProvaznik in https://github.com/dotnet/msbuild/pull/11602 * Remove MSBuildRuntimeType conditions by @ViktorHofer in https://github.com/dotnet/msbuild/pull/11641 * Set IDE0005 (Remove unnecessary using directives) severity to Warning by @JaynieBai in https://github.com/dotnet/msbuild/pull/11643 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11646 * Remove RichCodeNavIndexer from .vsts-dotnet-ci.yml by @akoeplinger in https://github.com/dotnet/msbuild/pull/11647 * [REVERT] 11546 refactor common pipe code by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/11648 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11651 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11645 * Implement ExecCliBuild build check to warn if the Exec task is used to build a project by @IliaShuliatikov in https://github.com/dotnet/msbuild/pull/11523 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11312841 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/11653 * Improve TargetFrameworkConfusionCheck by @stan-sz in https://github.com/dotnet/msbuild/pull/11656 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11664 * VS Telemetry design documentation by @JanProvaznik in https://github.com/dotnet/msbuild/pull/11175 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11667 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11332988 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/11675 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11685 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/11682 * Add separate DeserializePacket() to INodePacketFactory by @ccastanedaucf in https://github.com/dotnet/msbuild/pull/11650 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11695 * Update BuildCheck code BC0109 -> BC0302 by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/11696 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11689 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v17.14.28...v18.11.0). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #13748
Context
AbsolutePath.Valuewas not guaranteed to be fully qualified when the struct was constructed viaAbsolutePath(string, AbsolutePath). On Windows,Path.Combine(basePath, path)returns the second argument unchanged when it is rooted-but-not-fully-qualified (\fooroot-relative,X:foodrive-relative), soValuecould end up as a non-absolute string. A laterGetCanonicalForm()call would then resolve it viaSystem.IO.Path.GetFullPath, which consults process-global state (current drive, per-drive cwd) — breaking determinism and multithreaded task isolation.Changes
AbsolutePath(string, AbsolutePath)anchors the two Windows rooted-but-not-fully-qualified shapes againstbasePathat construction time, via a new privateMakeFullyQualifiedhelper:\foo,/foo) → re-rooted underbasePath's root usingPath.GetPathRoot.X:foo) → drive dropped, remainder anchored underbasePathviaPath.Combine.Path.GetFullPath(path, basePath)so the un-normalized form is preserved.GetCanonicalForm()remains the single normalization step.#if NETFRAMEWORK || NETbecausePath.IsPathFullyQualifiedis not available in netstandard2.0. The netstandard2.0 build is a compat surface only and never runs at runtime in MSBuild.Testing
AnchorsToBasePath_NotProcessStatecovers:foo,sub\file.txt) anchored tobasePath— confirms CWD is never consulted.