Fix ProjectImports.zip regression from shared FileUtilities statics#13382
Conversation
After FileUtilities moved from Shared to Framework (dotnet#13364), all assemblies share the same cacheDirectory static. ClearCacheDirectory() in XMake.cs now deletes the same directory that ProjectImportsCollector uses for its temporary archive, causing 'Could not find a part of the path' errors during binlog finalization. Fix: Store the temporary ProjectImports archive in TempFileDirectory (the parent) rather than GetCacheDirectory() (the child that gets wiped). Also make DeleteArchive resilient to the archive already being cleaned up. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The previous test simulated ProjectImportsCollector + ClearCacheDirectory in isolation. Replace with a real build through MSBuild CLI (ExecMSBuild with -bl:), which exercises the full XMake.Execute → EndBuild → ClearCacheDirectory code path. Verify the binlog still contains embedded project imports by replaying with ArchiveFileEncountered. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4e0c79d to
1d02dca
Compare
There was a problem hiding this comment.
Pull request overview
Fixes a regression where ClearCacheDirectory() could delete the temporary *.ProjectImports.zip archive before the binary logger embeds it, due to FileUtilities statics becoming shared after #13364.
Changes:
- Store temporary ProjectImports archives under
FileUtilities.TempFileDirectoryinstead ofFileUtilities.GetCacheDirectory(), avoiding deletion during shutdown cache cleanup. - Make
ProjectImportsCollector.DeleteArchive()best-effort by swallowing IO-related exceptions. - Add a regression unit test ensuring
ClearCacheDirectory()does not break reading/embedding the imports archive.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/Build/Logging/BinaryLogger/ProjectImportsCollector.cs | Moves temp archive location out of the cache directory and makes archive deletion resilient to IO failures. |
| src/Build.UnitTests/BinaryLogger_Tests.cs | Adds regression coverage to ensure ProjectImports archives survive ClearCacheDirectory(). |
You can also share your feedback on Copilot code review. Take the survey.
DustinCampbell
left a comment
There was a problem hiding this comment.
This looks good to me!
FWIW, this issue was pretty subtle and is a good example of why it's important to avoid static state in files compiled across binaries. For the future, it'd be good to audit the cache/temp path lifetimes.
(Note: Please wait for more legitimate MSBuild reviewers before taking my ✅.)
Co-authored-by: Dustin Campbell <dustin@teamcampbell.org>
…0076) Updated [Microsoft.Build.Framework](https://github.com/dotnet/msbuild) from 18.4.0 to 18.8.2. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Framework's releases](https://github.com/dotnet/msbuild/releases)._ ## 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) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v18.4.0...v18.8.2). </details> Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 18.4.0 to 18.8.2. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 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) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v18.4.0...v18.8.2). </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 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> ###### Microsoft Reviewers: [Open in CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/Azure/bicep/pull/20076) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Summary
Fixes the
ProjectImports.zipregression introduced by #13364.Problem
After #13364, all 9 VMR scenario tests fail across all platforms with:
Reported in: dotnet/dotnet#5433 (comment)
Root Cause
#13364 moved
FileUtilitiesfromsrc/Shared/(compiled into each assembly with independent statics) tosrc/Framework/(single shared assembly). Before,ClearCacheDirectory()in XMake.cs used MSBuild.exe's owncacheDirectorystatic — a different directory than the oneProjectImportsCollectorused. After, they share the same static, soClearCacheDirectory()destroys theProjectImports.ziparchive.Fix
ProjectImportsarchive inTempFileDirectory(parent, not wiped) instead ofGetCacheDirectory()(child, wiped byClearCacheDirectory()).DeleteArchive()resilient to IO errors.Open Question
Before #13364,
ClearCacheDirectory()at XMake.cs:1735 was a no-op for the real build cache. Now it actually cleans result cache files. This is new behavior that may need its own investigation.