-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Consolidate common IPC / named pipe code #11546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consolidate common IPC / named pipe code #11546
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR consolidates common IPC/named pipe functionality across multiple node components by refactoring packet deserialization methods, removing redundant code (including the BufferedReadStream), and updating the underlying pipe abstraction to use NodePipeClient/NodePipeServer.
- Refactored methods for deserializing packets (now DeserializePacket returning INodePacket) across components.
- Replaced direct stream operations with NodePipeClient/NodePipeServer and removed unused ifdef dead code.
- Removed BufferedReadStream to rely on MemoryStream buffering and simplified handshake and connection logic.
Reviewed Changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/Build/BackEnd/Client/MSBuildClientPacketPump.cs | Updated to use NodePipeClient; refactored packet read loop to call asynchronous ReadPacketAsync. |
| src/Shared/NodePacketFactory.cs | Changed DeserializeAndRoutePacket to DeserializePacket and updated its usage. |
| src/Shared/NodeEndpointOutOfProcBase.cs | Updated to use NodePipeServer and simplified handshake/connection logic by replacing obsolete code. |
| src/Build/BackEnd/Client/MSBuildClient.cs | Refactored to use NodePipeClient for writing packets and connecting to server. |
| Other files | Method renames and refactoring for unified IPC API, along with removal of BufferedReadStream. |
Comments suppressed due to low confidence (3)
src/Shared/NodeEndpointOutOfProcBase.cs:274
- [nitpick] The method WaitForConnection() returns a LinkStatus value but its name does not indicate that it determines the connection status. Consider renaming it or adding documentation to clarify its side effects and return value.
ChangeLinkStatus(localPipeServer.WaitForConnection());
src/Build/BackEnd/Client/MSBuildClient.cs:403
- Verify that the new NodePipeClient.WritePacket method correctly replicates the previous buffering and flushing behavior, ensuring no regression in packet transmission.
_pipeClient.WritePacket(packet);
src/Build/BackEnd/Node/InProcNode.cs:222
- After refactoring to return INodePacket via DeserializePacket, ensure that callers of this method are aware that a null return (as seen in the in-proc node implementation) is an acceptable outcome or handle it appropriately.
ErrorUtilities.ThrowInternalError("Unexpected call to DeserializeAndRoutePacket on the in-proc node.");
rainersigwald
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally we'd move the code shared between MSBuild and Microsoft.Build into Framework or another common location so it only has to be compiled/loaded from disk/jitted once. We can't always do that but for node comm stuff, we shouldn't ever be in the "one assembly reflection loaded but not hooked up to find the others" scenario.
But we can do that (much) later.
|
Just ported the relevant changes over from #11448 ( Otherwise this is good to go 👍 |
|
@SimaTian , could you have a final look please? |
This reverts commit 59d013b.
|
@ccastanedaucf sorry, we have to revert this PR due to regression caused. See #11648 for more details. |
|
Shoot, I'll break it off into chunks then. Aka get shared code in to unblock RAR stuff -> incrementally remove dead code / flip references over in the nodes with some more testing. |
### Context Minimum change to get shared IPC added in #11546 recompiling again for #11383 (since the original PR was reverted). ### Changes Made - Splits up `DeserializeAndRoutePacket()` in `PacketFactoryRecord` (private class) - Adds `DeserializePacket()` to `INodePacketFactory` and all implementations. Does not remove old method. - Adds ifdef's to shared pipe classes for compilation purposes No behavior changes to MSBuild.
…8559) Updated [Microsoft.Build.Framework](https://github.com/dotnet/msbuild) from 17.13.9 to 18.0.2. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Framework's releases](https://github.com/dotnet/msbuild/releases)._ ## 17.14.8 ## What's Changed * [vs17.14] Binlog not produced for C++ project on Visual Studio Load Fix by @surayya-MS in dotnet/msbuild#11774 * [vs17.14] Merge tag v17.14.8 by @surayya-MS in dotnet/msbuild#11861 **Full Changelog**: dotnet/msbuild@v17.14.5...v17.14.8 ## 17.14.5 ## What's Changed * [vs17.6] Dont ngen taskhost Fixes our lack of optprof data (#8737) by @JanKrivanek in dotnet/msbuild#8926 * [vs17.6] Bump version by @JanKrivanek in dotnet/msbuild#8932 * Update System.Security.Cryptography.Pkcs by @JanKrivanek in dotnet/msbuild#8977 * [vs17.8] Workaround for incorrect encoding of PUA range in GB18030 Uri string by @sujitnayak in dotnet/msbuild#9751 * [vs17.10] Check version bump on release branches' update by @github-actions in dotnet/msbuild#10041 * [release/vs17.6] Onboard 1es templates (#9924) by @surayya-MS in dotnet/msbuild#10053 * [automated] Merge branch 'vs17.6' => 'vs17.8' by @dotnet-maestro-bot in dotnet/msbuild#10056 * [automated] Merge branch 'vs17.9' => 'vs17.10' by @dotnet-maestro-bot in dotnet/msbuild#10081 * Disable localization for vs17.10 by @AR-May in dotnet/msbuild#10269 * Enable private feeds for release branch by @AR-May in dotnet/msbuild#10355 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10809 * CG alert cleaning on VS17.10 by @GangWang01 in dotnet/msbuild#10724 * CG alert cleaning on VS17.8 by @GangWang01 in dotnet/msbuild#10725 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10833 * [vs17.8] update arcade and fix build by @JanProvaznik in dotnet/msbuild#10838 * [vs17.8] Sync internal and public branches by @YuliiaKovalova in dotnet/msbuild#10858 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10896 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10894 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10986 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11030 * [vs17.8] Backport VS insertion pipeline YMLs by @github-actions in dotnet/msbuild#11066 * [17.8] Unblock opt-prof in release branches by @JanKrivanek in dotnet/msbuild#11112 * [vs17.8] Fix setting package versions in VS insertion by @github-actions in dotnet/msbuild#11103 * Update vs/msbuild version by @JanKrivanek in dotnet/msbuild#11115 * Update xcopy-msbuild version to 17.8.5 by @GangWang01 in dotnet/msbuild#11118 * Add inter-branch merge flow file by @GangWang01 in dotnet/msbuild#11123 * [vs17.8] Unblock OptProf build by @JanKrivanek in dotnet/msbuild#11121 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10992 * 17.14 Branding by @JanKrivanek in dotnet/msbuild#11128 * Bump up System.Text.Json to 8.0.5 by @GangWang01 in dotnet/msbuild#11134 * [automated] Merge branch 'vs17.8' => 'vs17.10' by @github-actions in dotnet/msbuild#11124 * Update localization comment for main by @JanKrivanek in dotnet/msbuild#11138 * Option to avoid "fixing" \ in new TaskItem() by @maridematte in dotnet/msbuild#11120 * Disable packing in bootstrap build by @JanKrivanek in dotnet/msbuild#11133 * Fixing the contention condition caused by RegisterResolversManifests by @SimaTian in dotnet/msbuild#11079 * [vs17.10] Run tests even if version is not bumped by @github-actions in dotnet/msbuild#11059 * Update interbranch flow by @JanKrivanek in dotnet/msbuild#11139 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 10720707 by @dotnet-bot in dotnet/msbuild#11154 * Fix ambiguous reference for ExceptionHandling class by @mthalman in dotnet/msbuild#11173 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11151 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11150 * telemetry onepager by @JanProvaznik in dotnet/msbuild#11013 * fix: Update json syntax of merge-flow config by @f-alizada in dotnet/msbuild#11190 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11176 * Fix casing for UTF8Output propery by @baronfel in dotnet/msbuild#11179 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11186 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11198 * Prevent reading from .rsp file for worker nodes by @YuliiaKovalova in dotnet/msbuild#11170 * Handle the case for updated binding redirects by @YuliiaKovalova in dotnet/msbuild#11012 ... (truncated) ## 17.14.0-preview-25177-05 [Release](https://github.com/dotnet/msbuild/releases/tag/v17.14.0-preview-25177-05) ## What's Changed * null check logging mechanism before logging glob failure by @JanProvaznik in dotnet/msbuild#11537 * Update .NET Framework references to 9.0.0 by @rainersigwald in dotnet/msbuild#11145 * [CodeQL][SM03800] Remove unapproved usage of DSACryptoServiceProvider by @sujitnayak in dotnet/msbuild#11540 * Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence by @surayya-MS in dotnet/msbuild#11538 * Upgrade `Microsoft.VisualStudio.SolutionPersistence` to 1.0.52 by @surayya-MS in dotnet/msbuild#11549 * Load `before/after.{solutionName}.sln.targets` for .`slnx` by @surayya-MS in dotnet/msbuild#11535 * Fix building slnf with @ in the path by @surayya-MS in dotnet/msbuild#11421 * Update copy logic to use dedicated threads. by @Erarndt in dotnet/msbuild#11272 * Update merge flow 17.14 -> main by @maridematte in dotnet/msbuild#11559 * Update VS insertions for 17.14 by @maridematte in dotnet/msbuild#11558 * Remove deprecated 4.3.* System package references by @ViktorHofer in dotnet/msbuild#11555 * Fix entries in Version.Details.xml and make version overriding clearer by @akoeplinger in dotnet/msbuild#11561 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11553 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions in dotnet/msbuild#11562 * [vs17.14] Remove deprecated 4.3.* System package references & fix entries in Version.Details.xml by @github-actions in dotnet/msbuild#11571 * Don't ngen StringTools.net35 by @rainersigwald in dotnet/msbuild#11544 * asking terminal for dimensions during every frame is expensive by @SimaTian in dotnet/msbuild#11504 * Fix the head parameter when search the created PRs by @JaynieBai in dotnet/msbuild#11569 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11552 * Fix test to take warning MSB5018 by @JaynieBai in dotnet/msbuild#11499 * Update tsa config by @AR-May in dotnet/msbuild#11578 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11098688 by @dotnet-bot in dotnet/msbuild#11501 * Switch to AwesomeAssertions by @rainersigwald in dotnet/msbuild#11577 * Update MicrosoftBuildVersion in analyzer template by @github-actions in dotnet/msbuild#11581 * Update branding to 17.15 by @maridematte in dotnet/msbuild#11582 * using virtual fuction instead of reflection by @SimaTian in dotnet/msbuild#11513 * Address some low-hanging fruit to use newer/better .NET features by @stephentoub in dotnet/msbuild#11448 * [automated] Merge branch 'vs17.13' => 'vs17.14' by @github-actions in dotnet/msbuild#11584 * Delete .exp-insertions.yml by @JanProvaznik in dotnet/msbuild#11601 * Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @vikukush in dotnet/msbuild#11167 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11600 * Make SolutionParser package reference private by @maridematte in dotnet/msbuild#11603 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11587 * Add null check when iterating through TargetOutputs in terminal logger by @mruxmohan4 in dotnet/msbuild#11606 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions in dotnet/msbuild#11572 * Assert instead of ! for nullable by @rainersigwald in dotnet/msbuild#11545 * Consolidate common IPC / named pipe code by @ccastanedaucf in dotnet/msbuild#11546 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11592 * Update maintenance-packages versions by @carlossanlop in dotnet/msbuild#11457 * [vs17.14] Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @github-actions in dotnet/msbuild#11620 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11615 * Pin samples/ProjectCachePlugin to released MSBuild by @rainersigwald in dotnet/msbuild#11563 * [vs17.14] Add null check when iterating through TargetOutputs in terminal logger by @github-actions in dotnet/msbuild#11621 * Update MicrosoftBuildVersion in analyzer template by @github-actions in dotnet/msbuild#11590 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11273384 by @dotnet-bot in dotnet/msbuild#11608 * Don't force shipping versions to be used in VMR builds by @jkoritzinsky in dotnet/msbuild#11625 * Fix url formatting in BuildCheck/Codes.md by @MaceWindu in dotnet/msbuild#11631 ... (truncated) ## 17.14.0-preview-25155-01 [Release](https://github.com/dotnet/core/releases/tag/v10.0.0-preview.2) ## What's Changed * [vs17.6] Dont ngen taskhost Fixes our lack of optprof data (#8737) by @JanKrivanek in dotnet/msbuild#8926 * [vs17.6] Bump version by @JanKrivanek in dotnet/msbuild#8932 * Update System.Security.Cryptography.Pkcs by @JanKrivanek in dotnet/msbuild#8977 * [vs17.8] Workaround for incorrect encoding of PUA range in GB18030 Uri string by @sujitnayak in dotnet/msbuild#9751 * [release/vs17.6] Onboard 1es templates (#9924) by @surayya-MS in dotnet/msbuild#10053 * [automated] Merge branch 'vs17.6' => 'vs17.8' by @dotnet-maestro-bot in dotnet/msbuild#10056 * CG alert cleaning on VS17.8 by @GangWang01 in dotnet/msbuild#10725 * [vs17.8] update arcade and fix build by @JanProvaznik in dotnet/msbuild#10838 * [vs17.8] Sync internal and public branches by @YuliiaKovalova in dotnet/msbuild#10858 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10894 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10986 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11030 * [vs17.8] Backport VS insertion pipeline YMLs by @github-actions in dotnet/msbuild#11066 * [17.8] Unblock opt-prof in release branches by @JanKrivanek in dotnet/msbuild#11112 * [vs17.8] Fix setting package versions in VS insertion by @github-actions in dotnet/msbuild#11103 * Update vs/msbuild version by @JanKrivanek in dotnet/msbuild#11115 * Update xcopy-msbuild version to 17.8.5 by @GangWang01 in dotnet/msbuild#11118 * Add inter-branch merge flow file by @GangWang01 in dotnet/msbuild#11123 * [vs17.8] Unblock OptProf build by @JanKrivanek in dotnet/msbuild#11121 * Bump up System.Text.Json to 8.0.5 by @GangWang01 in dotnet/msbuild#11134 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11218 * [vs17.8] disallow inserting pkgs twice in VS insertion by @JanProvaznik in dotnet/msbuild#11152 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11261 * Don't autocomplete servicing insertions by @JanProvaznik in dotnet/msbuild#11283 * [vs17.8] Select proper VS channel by @JanKrivanek in dotnet/msbuild#11246 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11306 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11367 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11371 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11339 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11408 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11406 * [vs17.13] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11407 * [vs17.12] Fix arcade tool restore by @JanProvaznik in dotnet/msbuild#11413 * [automated] Merge branch 'vs17.12' => 'vs17.13' by @github-actions in dotnet/msbuild#11419 * Prevent race condition in LoggingService by @YuliiaKovalova in dotnet/msbuild#11284 * [automated] Merge branch 'vs17.13' => 'main' by @github-actions in dotnet/msbuild#11422 * Bump `StyleCop.Analyzers` to `1.2.0-beta.556` by @xtqqczze in dotnet/msbuild#11398 * Avoid creation of temporary strings where possible by @Erarndt in dotnet/msbuild#11380 * Keep ActivityId correlations in ETW by @rainersigwald in dotnet/msbuild#10909 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11404 * [9.0.1xx] Workaround for "MSB4166: Child node "1" exited prematurely for build check by @YuliiaKovalova in dotnet/msbuild#11384 * Add EmbedInteropTypes to COMFileReference by @rainersigwald in dotnet/msbuild#11414 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11409 * [automated] Merge branch 'vs17.12' => 'vs17.13' by @github-actions in dotnet/msbuild#11424 * Port 1ES Pipeline Templates PR by @GangWang01 in dotnet/msbuild#11425 ... (truncated) ## 17.14.0-preview-25110-01 [Release](https://github.com/dotnet/core/releases/tag/v10.0.0-preview.1) ## What's Changed * [vs17.10] Check version bump on release branches' update by @github-actions in dotnet/msbuild#10041 * [automated] Merge branch 'vs17.9' => 'vs17.10' by @dotnet-maestro-bot in dotnet/msbuild#10081 * Disable localization for vs17.10 by @AR-May in dotnet/msbuild#10269 * Enable private feeds for release branch by @AR-May in dotnet/msbuild#10355 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10809 * CG alert cleaning on VS17.10 by @GangWang01 in dotnet/msbuild#10724 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10833 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10896 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10992 * 17.14 Branding by @JanKrivanek in dotnet/msbuild#11128 * [automated] Merge branch 'vs17.8' => 'vs17.10' by @github-actions in dotnet/msbuild#11124 * Update localization comment for main by @JanKrivanek in dotnet/msbuild#11138 * Option to avoid "fixing" \ in new TaskItem() by @maridematte in dotnet/msbuild#11120 * Disable packing in bootstrap build by @JanKrivanek in dotnet/msbuild#11133 * Fixing the contention condition caused by RegisterResolversManifests by @SimaTian in dotnet/msbuild#11079 * [vs17.10] Run tests even if version is not bumped by @github-actions in dotnet/msbuild#11059 * Update interbranch flow by @JanKrivanek in dotnet/msbuild#11139 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 10720707 by @dotnet-bot in dotnet/msbuild#11154 * Fix ambiguous reference for ExceptionHandling class by @mthalman in dotnet/msbuild#11173 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11151 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11150 * telemetry onepager by @JanProvaznik in dotnet/msbuild#11013 * fix: Update json syntax of merge-flow config by @f-alizada in dotnet/msbuild#11190 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11176 * Fix casing for UTF8Output propery by @baronfel in dotnet/msbuild#11179 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11186 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11198 * Prevent reading from .rsp file for worker nodes by @YuliiaKovalova in dotnet/msbuild#11170 * Handle the case for updated binding redirects by @YuliiaKovalova in dotnet/msbuild#11012 * Update ChangeWaves doc by @JanKrivanek in dotnet/msbuild#11174 * Add IntelliSense for testing properties by @Youssef1313 in dotnet/msbuild#11029 * enable experimentally inserting to release branches from UI by @JanProvaznik in dotnet/msbuild#11205 * Expose processes leveraged by BuildManager by @JanKrivanek in dotnet/msbuild#11146 * changing expander regex by @SimaTian in dotnet/msbuild#11210 * Add result for target stop event trace by @JaynieBai in dotnet/msbuild#11202 * Add more processes Logs for failed case Microsoft.Build.UnitTests.Exec_Tests.Timeout by @JaynieBai in dotnet/msbuild#9386 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11220 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11219 * Generate packages for e2e tests by using existing ArtifactsShippingPackagesDir by @YuliiaKovalova in dotnet/msbuild#11208 * Log glob failures by @JanProvaznik in dotnet/msbuild#11211 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11223 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11222 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11224 * Add line/column information to invalid project exception by @YuliiaKovalova in dotnet/msbuild#11232 * Enum.ToString method is resulting in slow performance. Fix it. by @SimaTian in dotnet/msbuild#11229 * Upgrade Microsoft.VisualStudio.SolutionPersistence to 1.0.28 by @mthalman in dotnet/msbuild#11249 * Update areapath in tsaoptions.json by @JanProvaznik in dotnet/msbuild#11251 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/commits). </details> Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 17.13.9 to 18.0.2. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 17.14.8 ## What's Changed * [vs17.14] Binlog not produced for C++ project on Visual Studio Load Fix by @surayya-MS in dotnet/msbuild#11774 * [vs17.14] Merge tag v17.14.8 by @surayya-MS in dotnet/msbuild#11861 **Full Changelog**: dotnet/msbuild@v17.14.5...v17.14.8 ## 17.14.5 ## What's Changed * [vs17.6] Dont ngen taskhost Fixes our lack of optprof data (#8737) by @JanKrivanek in dotnet/msbuild#8926 * [vs17.6] Bump version by @JanKrivanek in dotnet/msbuild#8932 * Update System.Security.Cryptography.Pkcs by @JanKrivanek in dotnet/msbuild#8977 * [vs17.8] Workaround for incorrect encoding of PUA range in GB18030 Uri string by @sujitnayak in dotnet/msbuild#9751 * [vs17.10] Check version bump on release branches' update by @github-actions in dotnet/msbuild#10041 * [release/vs17.6] Onboard 1es templates (#9924) by @surayya-MS in dotnet/msbuild#10053 * [automated] Merge branch 'vs17.6' => 'vs17.8' by @dotnet-maestro-bot in dotnet/msbuild#10056 * [automated] Merge branch 'vs17.9' => 'vs17.10' by @dotnet-maestro-bot in dotnet/msbuild#10081 * Disable localization for vs17.10 by @AR-May in dotnet/msbuild#10269 * Enable private feeds for release branch by @AR-May in dotnet/msbuild#10355 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10809 * CG alert cleaning on VS17.10 by @GangWang01 in dotnet/msbuild#10724 * CG alert cleaning on VS17.8 by @GangWang01 in dotnet/msbuild#10725 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10833 * [vs17.8] update arcade and fix build by @JanProvaznik in dotnet/msbuild#10838 * [vs17.8] Sync internal and public branches by @YuliiaKovalova in dotnet/msbuild#10858 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10896 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10894 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10986 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11030 * [vs17.8] Backport VS insertion pipeline YMLs by @github-actions in dotnet/msbuild#11066 * [17.8] Unblock opt-prof in release branches by @JanKrivanek in dotnet/msbuild#11112 * [vs17.8] Fix setting package versions in VS insertion by @github-actions in dotnet/msbuild#11103 * Update vs/msbuild version by @JanKrivanek in dotnet/msbuild#11115 * Update xcopy-msbuild version to 17.8.5 by @GangWang01 in dotnet/msbuild#11118 * Add inter-branch merge flow file by @GangWang01 in dotnet/msbuild#11123 * [vs17.8] Unblock OptProf build by @JanKrivanek in dotnet/msbuild#11121 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10992 * 17.14 Branding by @JanKrivanek in dotnet/msbuild#11128 * Bump up System.Text.Json to 8.0.5 by @GangWang01 in dotnet/msbuild#11134 * [automated] Merge branch 'vs17.8' => 'vs17.10' by @github-actions in dotnet/msbuild#11124 * Update localization comment for main by @JanKrivanek in dotnet/msbuild#11138 * Option to avoid "fixing" \ in new TaskItem() by @maridematte in dotnet/msbuild#11120 * Disable packing in bootstrap build by @JanKrivanek in dotnet/msbuild#11133 * Fixing the contention condition caused by RegisterResolversManifests by @SimaTian in dotnet/msbuild#11079 * [vs17.10] Run tests even if version is not bumped by @github-actions in dotnet/msbuild#11059 * Update interbranch flow by @JanKrivanek in dotnet/msbuild#11139 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 10720707 by @dotnet-bot in dotnet/msbuild#11154 * Fix ambiguous reference for ExceptionHandling class by @mthalman in dotnet/msbuild#11173 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11151 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11150 * telemetry onepager by @JanProvaznik in dotnet/msbuild#11013 * fix: Update json syntax of merge-flow config by @f-alizada in dotnet/msbuild#11190 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11176 * Fix casing for UTF8Output propery by @baronfel in dotnet/msbuild#11179 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11186 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11198 * Prevent reading from .rsp file for worker nodes by @YuliiaKovalova in dotnet/msbuild#11170 * Handle the case for updated binding redirects by @YuliiaKovalova in dotnet/msbuild#11012 ... (truncated) ## 17.14.0-preview-25177-05 [Release](https://github.com/dotnet/msbuild/releases/tag/v17.14.0-preview-25177-05) ## What's Changed * null check logging mechanism before logging glob failure by @JanProvaznik in dotnet/msbuild#11537 * Update .NET Framework references to 9.0.0 by @rainersigwald in dotnet/msbuild#11145 * [CodeQL][SM03800] Remove unapproved usage of DSACryptoServiceProvider by @sujitnayak in dotnet/msbuild#11540 * Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence by @surayya-MS in dotnet/msbuild#11538 * Upgrade `Microsoft.VisualStudio.SolutionPersistence` to 1.0.52 by @surayya-MS in dotnet/msbuild#11549 * Load `before/after.{solutionName}.sln.targets` for .`slnx` by @surayya-MS in dotnet/msbuild#11535 * Fix building slnf with @ in the path by @surayya-MS in dotnet/msbuild#11421 * Update copy logic to use dedicated threads. by @Erarndt in dotnet/msbuild#11272 * Update merge flow 17.14 -> main by @maridematte in dotnet/msbuild#11559 * Update VS insertions for 17.14 by @maridematte in dotnet/msbuild#11558 * Remove deprecated 4.3.* System package references by @ViktorHofer in dotnet/msbuild#11555 * Fix entries in Version.Details.xml and make version overriding clearer by @akoeplinger in dotnet/msbuild#11561 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11553 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions in dotnet/msbuild#11562 * [vs17.14] Remove deprecated 4.3.* System package references & fix entries in Version.Details.xml by @github-actions in dotnet/msbuild#11571 * Don't ngen StringTools.net35 by @rainersigwald in dotnet/msbuild#11544 * asking terminal for dimensions during every frame is expensive by @SimaTian in dotnet/msbuild#11504 * Fix the head parameter when search the created PRs by @JaynieBai in dotnet/msbuild#11569 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11552 * Fix test to take warning MSB5018 by @JaynieBai in dotnet/msbuild#11499 * Update tsa config by @AR-May in dotnet/msbuild#11578 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11098688 by @dotnet-bot in dotnet/msbuild#11501 * Switch to AwesomeAssertions by @rainersigwald in dotnet/msbuild#11577 * Update MicrosoftBuildVersion in analyzer template by @github-actions in dotnet/msbuild#11581 * Update branding to 17.15 by @maridematte in dotnet/msbuild#11582 * using virtual fuction instead of reflection by @SimaTian in dotnet/msbuild#11513 * Address some low-hanging fruit to use newer/better .NET features by @stephentoub in dotnet/msbuild#11448 * [automated] Merge branch 'vs17.13' => 'vs17.14' by @github-actions in dotnet/msbuild#11584 * Delete .exp-insertions.yml by @JanProvaznik in dotnet/msbuild#11601 * Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @vikukush in dotnet/msbuild#11167 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11600 * Make SolutionParser package reference private by @maridematte in dotnet/msbuild#11603 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11587 * Add null check when iterating through TargetOutputs in terminal logger by @mruxmohan4 in dotnet/msbuild#11606 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions in dotnet/msbuild#11572 * Assert instead of ! for nullable by @rainersigwald in dotnet/msbuild#11545 * Consolidate common IPC / named pipe code by @ccastanedaucf in dotnet/msbuild#11546 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11592 * Update maintenance-packages versions by @carlossanlop in dotnet/msbuild#11457 * [vs17.14] Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @github-actions in dotnet/msbuild#11620 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11615 * Pin samples/ProjectCachePlugin to released MSBuild by @rainersigwald in dotnet/msbuild#11563 * [vs17.14] Add null check when iterating through TargetOutputs in terminal logger by @github-actions in dotnet/msbuild#11621 * Update MicrosoftBuildVersion in analyzer template by @github-actions in dotnet/msbuild#11590 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11273384 by @dotnet-bot in dotnet/msbuild#11608 * Don't force shipping versions to be used in VMR builds by @jkoritzinsky in dotnet/msbuild#11625 * Fix url formatting in BuildCheck/Codes.md by @MaceWindu in dotnet/msbuild#11631 ... (truncated) ## 17.14.0-preview-25155-01 [Release](https://github.com/dotnet/core/releases/tag/v10.0.0-preview.2) ## What's Changed * [vs17.6] Dont ngen taskhost Fixes our lack of optprof data (#8737) by @JanKrivanek in dotnet/msbuild#8926 * [vs17.6] Bump version by @JanKrivanek in dotnet/msbuild#8932 * Update System.Security.Cryptography.Pkcs by @JanKrivanek in dotnet/msbuild#8977 * [vs17.8] Workaround for incorrect encoding of PUA range in GB18030 Uri string by @sujitnayak in dotnet/msbuild#9751 * [release/vs17.6] Onboard 1es templates (#9924) by @surayya-MS in dotnet/msbuild#10053 * [automated] Merge branch 'vs17.6' => 'vs17.8' by @dotnet-maestro-bot in dotnet/msbuild#10056 * CG alert cleaning on VS17.8 by @GangWang01 in dotnet/msbuild#10725 * [vs17.8] update arcade and fix build by @JanProvaznik in dotnet/msbuild#10838 * [vs17.8] Sync internal and public branches by @YuliiaKovalova in dotnet/msbuild#10858 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10894 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10986 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11030 * [vs17.8] Backport VS insertion pipeline YMLs by @github-actions in dotnet/msbuild#11066 * [17.8] Unblock opt-prof in release branches by @JanKrivanek in dotnet/msbuild#11112 * [vs17.8] Fix setting package versions in VS insertion by @github-actions in dotnet/msbuild#11103 * Update vs/msbuild version by @JanKrivanek in dotnet/msbuild#11115 * Update xcopy-msbuild version to 17.8.5 by @GangWang01 in dotnet/msbuild#11118 * Add inter-branch merge flow file by @GangWang01 in dotnet/msbuild#11123 * [vs17.8] Unblock OptProf build by @JanKrivanek in dotnet/msbuild#11121 * Bump up System.Text.Json to 8.0.5 by @GangWang01 in dotnet/msbuild#11134 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11218 * [vs17.8] disallow inserting pkgs twice in VS insertion by @JanProvaznik in dotnet/msbuild#11152 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11261 * Don't autocomplete servicing insertions by @JanProvaznik in dotnet/msbuild#11283 * [vs17.8] Select proper VS channel by @JanKrivanek in dotnet/msbuild#11246 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11306 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11367 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11371 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11339 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11408 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11406 * [vs17.13] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11407 * [vs17.12] Fix arcade tool restore by @JanProvaznik in dotnet/msbuild#11413 * [automated] Merge branch 'vs17.12' => 'vs17.13' by @github-actions in dotnet/msbuild#11419 * Prevent race condition in LoggingService by @YuliiaKovalova in dotnet/msbuild#11284 * [automated] Merge branch 'vs17.13' => 'main' by @github-actions in dotnet/msbuild#11422 * Bump `StyleCop.Analyzers` to `1.2.0-beta.556` by @xtqqczze in dotnet/msbuild#11398 * Avoid creation of temporary strings where possible by @Erarndt in dotnet/msbuild#11380 * Keep ActivityId correlations in ETW by @rainersigwald in dotnet/msbuild#10909 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11404 * [9.0.1xx] Workaround for "MSB4166: Child node "1" exited prematurely for build check by @YuliiaKovalova in dotnet/msbuild#11384 * Add EmbedInteropTypes to COMFileReference by @rainersigwald in dotnet/msbuild#11414 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11409 * [automated] Merge branch 'vs17.12' => 'vs17.13' by @github-actions in dotnet/msbuild#11424 * Port 1ES Pipeline Templates PR by @GangWang01 in dotnet/msbuild#11425 ... (truncated) ## 17.14.0-preview-25110-01 [Release](https://github.com/dotnet/core/releases/tag/v10.0.0-preview.1) ## What's Changed * [vs17.10] Check version bump on release branches' update by @github-actions in dotnet/msbuild#10041 * [automated] Merge branch 'vs17.9' => 'vs17.10' by @dotnet-maestro-bot in dotnet/msbuild#10081 * Disable localization for vs17.10 by @AR-May in dotnet/msbuild#10269 * Enable private feeds for release branch by @AR-May in dotnet/msbuild#10355 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10809 * CG alert cleaning on VS17.10 by @GangWang01 in dotnet/msbuild#10724 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10833 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10896 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10992 * 17.14 Branding by @JanKrivanek in dotnet/msbuild#11128 * [automated] Merge branch 'vs17.8' => 'vs17.10' by @github-actions in dotnet/msbuild#11124 * Update localization comment for main by @JanKrivanek in dotnet/msbuild#11138 * Option to avoid "fixing" \ in new TaskItem() by @maridematte in dotnet/msbuild#11120 * Disable packing in bootstrap build by @JanKrivanek in dotnet/msbuild#11133 * Fixing the contention condition caused by RegisterResolversManifests by @SimaTian in dotnet/msbuild#11079 * [vs17.10] Run tests even if version is not bumped by @github-actions in dotnet/msbuild#11059 * Update interbranch flow by @JanKrivanek in dotnet/msbuild#11139 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 10720707 by @dotnet-bot in dotnet/msbuild#11154 * Fix ambiguous reference for ExceptionHandling class by @mthalman in dotnet/msbuild#11173 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11151 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11150 * telemetry onepager by @JanProvaznik in dotnet/msbuild#11013 * fix: Update json syntax of merge-flow config by @f-alizada in dotnet/msbuild#11190 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11176 * Fix casing for UTF8Output propery by @baronfel in dotnet/msbuild#11179 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11186 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11198 * Prevent reading from .rsp file for worker nodes by @YuliiaKovalova in dotnet/msbuild#11170 * Handle the case for updated binding redirects by @YuliiaKovalova in dotnet/msbuild#11012 * Update ChangeWaves doc by @JanKrivanek in dotnet/msbuild#11174 * Add IntelliSense for testing properties by @Youssef1313 in dotnet/msbuild#11029 * enable experimentally inserting to release branches from UI by @JanProvaznik in dotnet/msbuild#11205 * Expose processes leveraged by BuildManager by @JanKrivanek in dotnet/msbuild#11146 * changing expander regex by @SimaTian in dotnet/msbuild#11210 * Add result for target stop event trace by @JaynieBai in dotnet/msbuild#11202 * Add more processes Logs for failed case Microsoft.Build.UnitTests.Exec_Tests.Timeout by @JaynieBai in dotnet/msbuild#9386 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11220 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11219 * Generate packages for e2e tests by using existing ArtifactsShippingPackagesDir by @YuliiaKovalova in dotnet/msbuild#11208 * Log glob failures by @JanProvaznik in dotnet/msbuild#11211 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11223 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11222 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11224 * Add line/column information to invalid project exception by @YuliiaKovalova in dotnet/msbuild#11232 * Enum.ToString method is resulting in slow performance. Fix it. by @SimaTian in dotnet/msbuild#11229 * Upgrade Microsoft.VisualStudio.SolutionPersistence to 1.0.28 by @mthalman in dotnet/msbuild#11249 * Update areapath in tsaoptions.json by @JanProvaznik in dotnet/msbuild#11251 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/commits). </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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot 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/18559) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthony Martin <38542602+anthony-c-martin@users.noreply.github.com>
Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 17.13.26 to 17.14.28. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 17.14.8 ## What's Changed * [vs17.14] Binlog not produced for C++ project on Visual Studio Load Fix by @surayya-MS in dotnet/msbuild#11774 * [vs17.14] Merge tag v17.14.8 by @surayya-MS in dotnet/msbuild#11861 **Full Changelog**: dotnet/msbuild@v17.14.5...v17.14.8 ## 17.14.5 ## What's Changed * [vs17.6] Dont ngen taskhost Fixes our lack of optprof data (#8737) by @JanKrivanek in dotnet/msbuild#8926 * [vs17.6] Bump version by @JanKrivanek in dotnet/msbuild#8932 * Update System.Security.Cryptography.Pkcs by @JanKrivanek in dotnet/msbuild#8977 * [vs17.8] Workaround for incorrect encoding of PUA range in GB18030 Uri string by @sujitnayak in dotnet/msbuild#9751 * [vs17.10] Check version bump on release branches' update by @github-actions in dotnet/msbuild#10041 * [release/vs17.6] Onboard 1es templates (#9924) by @surayya-MS in dotnet/msbuild#10053 * [automated] Merge branch 'vs17.6' => 'vs17.8' by @dotnet-maestro-bot in dotnet/msbuild#10056 * [automated] Merge branch 'vs17.9' => 'vs17.10' by @dotnet-maestro-bot in dotnet/msbuild#10081 * Disable localization for vs17.10 by @AR-May in dotnet/msbuild#10269 * Enable private feeds for release branch by @AR-May in dotnet/msbuild#10355 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10809 * CG alert cleaning on VS17.10 by @GangWang01 in dotnet/msbuild#10724 * CG alert cleaning on VS17.8 by @GangWang01 in dotnet/msbuild#10725 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10833 * [vs17.8] update arcade and fix build by @JanProvaznik in dotnet/msbuild#10838 * [vs17.8] Sync internal and public branches by @YuliiaKovalova in dotnet/msbuild#10858 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10896 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10894 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10986 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11030 * [vs17.8] Backport VS insertion pipeline YMLs by @github-actions in dotnet/msbuild#11066 * [17.8] Unblock opt-prof in release branches by @JanKrivanek in dotnet/msbuild#11112 * [vs17.8] Fix setting package versions in VS insertion by @github-actions in dotnet/msbuild#11103 * Update vs/msbuild version by @JanKrivanek in dotnet/msbuild#11115 * Update xcopy-msbuild version to 17.8.5 by @GangWang01 in dotnet/msbuild#11118 * Add inter-branch merge flow file by @GangWang01 in dotnet/msbuild#11123 * [vs17.8] Unblock OptProf build by @JanKrivanek in dotnet/msbuild#11121 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10992 * 17.14 Branding by @JanKrivanek in dotnet/msbuild#11128 * Bump up System.Text.Json to 8.0.5 by @GangWang01 in dotnet/msbuild#11134 * [automated] Merge branch 'vs17.8' => 'vs17.10' by @github-actions in dotnet/msbuild#11124 * Update localization comment for main by @JanKrivanek in dotnet/msbuild#11138 * Option to avoid "fixing" \ in new TaskItem() by @maridematte in dotnet/msbuild#11120 * Disable packing in bootstrap build by @JanKrivanek in dotnet/msbuild#11133 * Fixing the contention condition caused by RegisterResolversManifests by @SimaTian in dotnet/msbuild#11079 * [vs17.10] Run tests even if version is not bumped by @github-actions in dotnet/msbuild#11059 * Update interbranch flow by @JanKrivanek in dotnet/msbuild#11139 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 10720707 by @dotnet-bot in dotnet/msbuild#11154 * Fix ambiguous reference for ExceptionHandling class by @mthalman in dotnet/msbuild#11173 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11151 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11150 * telemetry onepager by @JanProvaznik in dotnet/msbuild#11013 * fix: Update json syntax of merge-flow config by @f-alizada in dotnet/msbuild#11190 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11176 * Fix casing for UTF8Output propery by @baronfel in dotnet/msbuild#11179 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11186 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11198 * Prevent reading from .rsp file for worker nodes by @YuliiaKovalova in dotnet/msbuild#11170 * Handle the case for updated binding redirects by @YuliiaKovalova in dotnet/msbuild#11012 ... (truncated) ## 17.14.0-preview-25177-05 [Release](https://github.com/dotnet/msbuild/releases/tag/v17.14.0-preview-25177-05) ## What's Changed * null check logging mechanism before logging glob failure by @JanProvaznik in dotnet/msbuild#11537 * Update .NET Framework references to 9.0.0 by @rainersigwald in dotnet/msbuild#11145 * [CodeQL][SM03800] Remove unapproved usage of DSACryptoServiceProvider by @sujitnayak in dotnet/msbuild#11540 * Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence by @surayya-MS in dotnet/msbuild#11538 * Upgrade `Microsoft.VisualStudio.SolutionPersistence` to 1.0.52 by @surayya-MS in dotnet/msbuild#11549 * Load `before/after.{solutionName}.sln.targets` for .`slnx` by @surayya-MS in dotnet/msbuild#11535 * Fix building slnf with @ in the path by @surayya-MS in dotnet/msbuild#11421 * Update copy logic to use dedicated threads. by @Erarndt in dotnet/msbuild#11272 * Update merge flow 17.14 -> main by @maridematte in dotnet/msbuild#11559 * Update VS insertions for 17.14 by @maridematte in dotnet/msbuild#11558 * Remove deprecated 4.3.* System package references by @ViktorHofer in dotnet/msbuild#11555 * Fix entries in Version.Details.xml and make version overriding clearer by @akoeplinger in dotnet/msbuild#11561 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11553 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions in dotnet/msbuild#11562 * [vs17.14] Remove deprecated 4.3.* System package references & fix entries in Version.Details.xml by @github-actions in dotnet/msbuild#11571 * Don't ngen StringTools.net35 by @rainersigwald in dotnet/msbuild#11544 * asking terminal for dimensions during every frame is expensive by @SimaTian in dotnet/msbuild#11504 * Fix the head parameter when search the created PRs by @JaynieBai in dotnet/msbuild#11569 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11552 * Fix test to take warning MSB5018 by @JaynieBai in dotnet/msbuild#11499 * Update tsa config by @AR-May in dotnet/msbuild#11578 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11098688 by @dotnet-bot in dotnet/msbuild#11501 * Switch to AwesomeAssertions by @rainersigwald in dotnet/msbuild#11577 * Update MicrosoftBuildVersion in analyzer template by @github-actions in dotnet/msbuild#11581 * Update branding to 17.15 by @maridematte in dotnet/msbuild#11582 * using virtual fuction instead of reflection by @SimaTian in dotnet/msbuild#11513 * Address some low-hanging fruit to use newer/better .NET features by @stephentoub in dotnet/msbuild#11448 * [automated] Merge branch 'vs17.13' => 'vs17.14' by @github-actions in dotnet/msbuild#11584 * Delete .exp-insertions.yml by @JanProvaznik in dotnet/msbuild#11601 * Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @vikukush in dotnet/msbuild#11167 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11600 * Make SolutionParser package reference private by @maridematte in dotnet/msbuild#11603 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11587 * Add null check when iterating through TargetOutputs in terminal logger by @mruxmohan4 in dotnet/msbuild#11606 * [automated] Merge branch 'vs17.14' => 'main' by @github-actions in dotnet/msbuild#11572 * Assert instead of ! for nullable by @rainersigwald in dotnet/msbuild#11545 * Consolidate common IPC / named pipe code by @ccastanedaucf in dotnet/msbuild#11546 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11592 * Update maintenance-packages versions by @carlossanlop in dotnet/msbuild#11457 * [vs17.14] Microsoft.Common.CurrentVersion.targets: _SplitProjectReferencesByFileExistence DependsOn AssignProjectConfiguration by @github-actions in dotnet/msbuild#11620 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11615 * Pin samples/ProjectCachePlugin to released MSBuild by @rainersigwald in dotnet/msbuild#11563 * [vs17.14] Add null check when iterating through TargetOutputs in terminal logger by @github-actions in dotnet/msbuild#11621 * Update MicrosoftBuildVersion in analyzer template by @github-actions in dotnet/msbuild#11590 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 11273384 by @dotnet-bot in dotnet/msbuild#11608 * Don't force shipping versions to be used in VMR builds by @jkoritzinsky in dotnet/msbuild#11625 * Fix url formatting in BuildCheck/Codes.md by @MaceWindu in dotnet/msbuild#11631 ... (truncated) ## 17.14.0-preview-25155-01 [Release](https://github.com/dotnet/core/releases/tag/v10.0.0-preview.2) ## What's Changed * [vs17.6] Dont ngen taskhost Fixes our lack of optprof data (#8737) by @JanKrivanek in dotnet/msbuild#8926 * [vs17.6] Bump version by @JanKrivanek in dotnet/msbuild#8932 * Update System.Security.Cryptography.Pkcs by @JanKrivanek in dotnet/msbuild#8977 * [vs17.8] Workaround for incorrect encoding of PUA range in GB18030 Uri string by @sujitnayak in dotnet/msbuild#9751 * [release/vs17.6] Onboard 1es templates (#9924) by @surayya-MS in dotnet/msbuild#10053 * [automated] Merge branch 'vs17.6' => 'vs17.8' by @dotnet-maestro-bot in dotnet/msbuild#10056 * CG alert cleaning on VS17.8 by @GangWang01 in dotnet/msbuild#10725 * [vs17.8] update arcade and fix build by @JanProvaznik in dotnet/msbuild#10838 * [vs17.8] Sync internal and public branches by @YuliiaKovalova in dotnet/msbuild#10858 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10894 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10986 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11030 * [vs17.8] Backport VS insertion pipeline YMLs by @github-actions in dotnet/msbuild#11066 * [17.8] Unblock opt-prof in release branches by @JanKrivanek in dotnet/msbuild#11112 * [vs17.8] Fix setting package versions in VS insertion by @github-actions in dotnet/msbuild#11103 * Update vs/msbuild version by @JanKrivanek in dotnet/msbuild#11115 * Update xcopy-msbuild version to 17.8.5 by @GangWang01 in dotnet/msbuild#11118 * Add inter-branch merge flow file by @GangWang01 in dotnet/msbuild#11123 * [vs17.8] Unblock OptProf build by @JanKrivanek in dotnet/msbuild#11121 * Bump up System.Text.Json to 8.0.5 by @GangWang01 in dotnet/msbuild#11134 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11218 * [vs17.8] disallow inserting pkgs twice in VS insertion by @JanProvaznik in dotnet/msbuild#11152 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11261 * Don't autocomplete servicing insertions by @JanProvaznik in dotnet/msbuild#11283 * [vs17.8] Select proper VS channel by @JanKrivanek in dotnet/msbuild#11246 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11306 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11367 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11371 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11339 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11408 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11406 * [vs17.13] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11407 * [vs17.12] Fix arcade tool restore by @JanProvaznik in dotnet/msbuild#11413 * [automated] Merge branch 'vs17.12' => 'vs17.13' by @github-actions in dotnet/msbuild#11419 * Prevent race condition in LoggingService by @YuliiaKovalova in dotnet/msbuild#11284 * [automated] Merge branch 'vs17.13' => 'main' by @github-actions in dotnet/msbuild#11422 * Bump `StyleCop.Analyzers` to `1.2.0-beta.556` by @xtqqczze in dotnet/msbuild#11398 * Avoid creation of temporary strings where possible by @Erarndt in dotnet/msbuild#11380 * Keep ActivityId correlations in ETW by @rainersigwald in dotnet/msbuild#10909 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11404 * [9.0.1xx] Workaround for "MSB4166: Child node "1" exited prematurely for build check by @YuliiaKovalova in dotnet/msbuild#11384 * Add EmbedInteropTypes to COMFileReference by @rainersigwald in dotnet/msbuild#11414 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11409 * [automated] Merge branch 'vs17.12' => 'vs17.13' by @github-actions in dotnet/msbuild#11424 * Port 1ES Pipeline Templates PR by @GangWang01 in dotnet/msbuild#11425 ... (truncated) ## 17.14.0-preview-25110-01 [Release](https://github.com/dotnet/core/releases/tag/v10.0.0-preview.1) ## What's Changed * [vs17.10] Check version bump on release branches' update by @github-actions in dotnet/msbuild#10041 * [automated] Merge branch 'vs17.9' => 'vs17.10' by @dotnet-maestro-bot in dotnet/msbuild#10081 * Disable localization for vs17.10 by @AR-May in dotnet/msbuild#10269 * Enable private feeds for release branch by @AR-May in dotnet/msbuild#10355 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10809 * CG alert cleaning on VS17.10 by @GangWang01 in dotnet/msbuild#10724 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10833 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10896 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#10992 * 17.14 Branding by @JanKrivanek in dotnet/msbuild#11128 * [automated] Merge branch 'vs17.8' => 'vs17.10' by @github-actions in dotnet/msbuild#11124 * Update localization comment for main by @JanKrivanek in dotnet/msbuild#11138 * Option to avoid "fixing" \ in new TaskItem() by @maridematte in dotnet/msbuild#11120 * Disable packing in bootstrap build by @JanKrivanek in dotnet/msbuild#11133 * Fixing the contention condition caused by RegisterResolversManifests by @SimaTian in dotnet/msbuild#11079 * [vs17.10] Run tests even if version is not bumped by @github-actions in dotnet/msbuild#11059 * Update interbranch flow by @JanKrivanek in dotnet/msbuild#11139 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 10720707 by @dotnet-bot in dotnet/msbuild#11154 * Fix ambiguous reference for ExceptionHandling class by @mthalman in dotnet/msbuild#11173 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro in dotnet/msbuild#11151 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11150 * telemetry onepager by @JanProvaznik in dotnet/msbuild#11013 * fix: Update json syntax of merge-flow config by @f-alizada in dotnet/msbuild#11190 * [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in dotnet/msbuild#11176 * Fix casing for UTF8Output propery by @baronfel in dotnet/msbuild#11179 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11186 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11198 * Prevent reading from .rsp file for worker nodes by @YuliiaKovalova in dotnet/msbuild#11170 * Handle the case for updated binding redirects by @YuliiaKovalova in dotnet/msbuild#11012 * Update ChangeWaves doc by @JanKrivanek in dotnet/msbuild#11174 * Add IntelliSense for testing properties by @Youssef1313 in dotnet/msbuild#11029 * enable experimentally inserting to release branches from UI by @JanProvaznik in dotnet/msbuild#11205 * Expose processes leveraged by BuildManager by @JanKrivanek in dotnet/msbuild#11146 * changing expander regex by @SimaTian in dotnet/msbuild#11210 * Add result for target stop event trace by @JaynieBai in dotnet/msbuild#11202 * Add more processes Logs for failed case Microsoft.Build.UnitTests.Exec_Tests.Timeout by @JaynieBai in dotnet/msbuild#9386 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11220 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro in dotnet/msbuild#11219 * Generate packages for e2e tests by using existing ArtifactsShippingPackagesDir by @YuliiaKovalova in dotnet/msbuild#11208 * Log glob failures by @JanProvaznik in dotnet/msbuild#11211 * [vs17.10] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11223 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11222 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro in dotnet/msbuild#11224 * Add line/column information to invalid project exception by @YuliiaKovalova in dotnet/msbuild#11232 * Enum.ToString method is resulting in slow performance. Fix it. by @SimaTian in dotnet/msbuild#11229 * Upgrade Microsoft.VisualStudio.SolutionPersistence to 1.0.28 by @mthalman in dotnet/msbuild#11249 * Update areapath in tsaoptions.json by @JanProvaznik in dotnet/msbuild#11251 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/commits). </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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot 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>
Motivation
The various node components contain a lot of duplicated code related to reading and writing packets, sequencing pipe operations, managing reusable buffers, handling broken connections, etc. along with differing implementations of performance optimizations and buffer reuse.
This PR aims to encapsulate all common logic into a simple API for reading and writing packets in a single call, along with extracting out the pipe connection and handshake logic for use outside of build nodes.
The primary motivation is to allow the RAR-out-of-proc client and server to share the same IPC code with MSBuild, as that must partially live in the Tasks assembly and cannot depend on much of the node provider/endpoint framework. Given that existing IPC logic already has test coverage and continued optimizations, it makes more sense to reuse as much as possible instead of adding (yet another) implementation of pipe communication, unit tests, ect.
Notes
Although I've kept behavior as close as possible, there's a few additional changes here to be noted:
ifdefswere removed or combined. There is a lot of dead code which appears to be a holdover from Mono or unsupported targets, and can now be reduced to: (Framework, .NET Core, or TaskHost).Begin/EndAPI and customIAsyncResultimplementation adds a lot of complexity and more compile flags.BufferedReadStreamwas removed. as it performs the same function as theMemoryStreambuffering. Likely more inefficiently as well due to the small buffer size (meaning more IO ops on the named pipe). I did not test against the most recent perf optimization here, but I would still expect this to be the case.INodePacketFactory.DeserializeAndRoutePacket()was split into two methods (which accounts for most of the file changes here). Motivation is soNodePipeBasecan directly return anINodePacketinstance but still allow the caller to decide whether to route it. This is not publicly exposed so it shouldn't be a breaking change.PipeOptions.WriteThrough. This flag has no effect on local IPC, which will always use kernel buffers.Let me know if there's anything I need to split off to make this more digestible (e.g. INodePacketFactory plumbing, BufferedReadStream removal, some of the flag consolidation would be very quick), but this gives the full context.