Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) - #13917
Conversation
WaitHandle.WaitAll for multiple handles throws NotSupportedException on STA threads (e.g. AspNetCompiler), causing MSB4018. Wait on each EOF event individually with WaitOne while honoring the same overall timeout. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR fixes an MSB4018 crash when ToolTask runs on an STA thread by avoiding WaitHandle.WaitAll (unsupported for multiple handles on STA) in the Wave18_6 WaitForProcessExit EOF-wait logic, while preserving the original bounded timeout behavior.
Changes:
- Replaces
WaitHandle.WaitAllover stdout/stderr EOF events with sequentialWaitOnecalls (STA-safe) under Wave18_6. - Preserves the same overall EOF timeout budget by tracking elapsed time and applying the remaining timeout to the second wait.
There was a problem hiding this comment.
MSBuild 24-Dimension Review — PR #13917
Fix summary: Replaces WaitHandle.WaitAll([stdout, stderr], 30s) with sequential WaitOne calls sharing a single Stopwatch-tracked budget. Correctly resolves NotSupportedException thrown on STA threads (.NET Framework).
| # | Dimension | Verdict |
|---|---|---|
| 4 | Test Coverage | 🟠 1 MAJOR |
| 18 | Documentation Accuracy | 🔵 1 NIT |
✅ 22/24 dimensions clean.
Key validations (all confirmed correct)
Semantics preservation (Dim 1, 22): The sequential approach with a pre-started Stopwatch is mathematically identical to WaitAll. If stdout signals at time T1, then remainingMs = 30s − T1, so stderr deadline = T1 + remainingMs = T0 + 30s — the same absolute deadline as WaitAll. Proof holds for all cases: both events already signaled, stdout timeout, stderr timeout, WaitOne(0) non-blocking poll.
Integer cast safety (Dim 22): (int)Math.Max(0, eofTimeoutMs − eofTimer.ElapsedMilliseconds) — value is provably in [0, 30000], so (int) cast is safe with no overflow path.
Thread safety (Dim 13): ManualResetEvent stays signaled once Set() is called. If stderr EOF fires before the second WaitOne, the poll returns true immediately regardless of remaining time. No race condition.
Allocation (Dim 3): Net improvement — removes the WaitHandle[] array, adds one Stopwatch instance. Negligible on a 30s-bounded code path.
ChangeWave (Dim 2): Bug fix within existing Wave18_6 gate — no new wave needed, both enabled/disabled paths preserved.
- Test Coverage (MAJOR) — add a
[WindowsOnlyFact]that runs aToolTaskon an explicit STA thread and assertsNotSupportedExceptionis not thrown - Documentation (NIT) — clarify in the comment that the STA restriction applies to .NET Framework only
Note
🔒 Integrity filter blocked 2 items
The following items were blocked because they don't meet the GitHub integrity level.
- #13917
pull_request_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". - #13917
pull_request_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
To allow these resources, lower min-integrity in your GitHub frontmatter:
tools:
github:
min-integrity: approved # merged | approved | unapproved | noneGenerated by Expert Code Review (on open) for issue #13917 · ● 5.1M
Replace the two stdout/stderr EOF ManualResetEvents and WaitHandle.WaitAll (which throws NotSupportedException on STA threads such as AspNetCompiler) with a single CountdownEvent(2) signaled once per stream and awaited via CountdownEvent.Wait, which is STA-safe. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
creating an experimental insertion to manual test the aspcompiler scenario |
|
2026-06-04 Validation.
|
Updated [Azure.Bicep.Types.Az](https://github.com/Azure/bicep-types-az) from 0.2.911 to 0.2.923. <details> <summary>Release notes</summary> _Sourced from [Azure.Bicep.Types.Az's releases](https://github.com/Azure/bicep-types-az/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/Azure/bicep-types-az/commits). </details> Updated [Azure.Deployments.Templates](https://msazure.visualstudio.com/One/_git/AzureUX-Deployments) from 1.683.0 to 1.765.0. <details> <summary>Release notes</summary> _Sourced from [Azure.Deployments.Templates's releases](https://msazure.visualstudio.com/One/_git/AzureUX-Deployments/tags)._ No release notes found for this version range. Commits viewable in [compare view](https://msazure.visualstudio.com/One/_git/AzureUX-Deployments/commits). </details> Updated [Google.Protobuf](https://github.com/protocolbuffers/protobuf) from 3.35.1 to 3.36.1. <details> <summary>Release notes</summary> _Sourced from [Google.Protobuf's releases](https://github.com/protocolbuffers/protobuf/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/protocolbuffers/protobuf/commits). </details> Updated [Grpc.AspNetCore.Server.Reflection](https://github.com/grpc/grpc-dotnet) from 2.80.0 to 2.83.0. <details> <summary>Release notes</summary> _Sourced from [Grpc.AspNetCore.Server.Reflection's releases](https://github.com/grpc/grpc-dotnet/releases)._ ## 2.83.0 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 * Update versions for stable release 2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2750 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0 ## 2.83.0-pre1 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0-pre1 Commits viewable in [compare view](https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0). </details> Updated [Grpc.Net.Client](https://github.com/grpc/grpc-dotnet) from 2.76.0 to 2.83.0. <details> <summary>Release notes</summary> _Sourced from [Grpc.Net.Client's releases](https://github.com/grpc/grpc-dotnet/releases)._ ## 2.83.0 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 * Update versions for stable release 2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2750 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0 ## 2.83.0-pre1 ## What's Changed * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2709 * Revert "[Release v2.80.x] Fix the version number - Step 3" by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2710 * Bump lodash from 4.17.23 to 4.18.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2712 * Bump basic-ftp from 5.2.0 to 5.2.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2713 * Fix typo in UnaryServerHandler method description by @HamzaWahed in https://github.com/grpc/grpc-dotnet/pull/2714 * Bump axios from 1.13.6 to 1.15.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2715 * Bump basic-ftp from 5.2.1 to 5.2.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2716 * Bump follow-redirects from 1.15.11 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2717 * Resolver: fix 'retreive'/'retreiveing' typos in XML doc comments by @SAY-5 in https://github.com/grpc/grpc-dotnet/pull/2718 * Bump basic-ftp from 5.2.2 to 5.3.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2719 * Bump protobufjs from 7.5.3 to 7.5.5 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2721 * Fix flaky DuplexStream_SendToUnimplementedMethod_ThrowError test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2720 * Add SECURITY.md by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2722 * Update OpenTelemetry packages to latest stable by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2729 * Bump fast-uri from 3.1.0 to 3.1.2 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2730 * Bump basic-ftp from 5.3.0 to 5.3.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2727 * Bump axios from 1.15.0 to 1.16.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2728 * Fix XML documentation typo by @martincostello in https://github.com/grpc/grpc-dotnet/pull/2724 * Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2733 * Bump protobufjs from 7.5.5 to 7.5.8 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2735 * Fix typo in comment about socket ping scheduling by @yasoob in https://github.com/grpc/grpc-dotnet/pull/2671 * Bump ip-address and socks in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2726 * Fix subchannel permanently stuck in TransientFailure after ConnectTimeout by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2736 * Bump ws from 8.18.3 to 8.20.1 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2737 * _moveNextTask may be overwritten, after we release the lock, but befo… by @osexpert in https://github.com/grpc/grpc-dotnet/pull/2738 * Bump form-data from 4.0.5 to 4.0.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2743 * Bump joi from 17.13.3 to 17.13.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2741 * Bump ws from 8.20.1 to 8.21.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2742 * Using Grpc.Tools 2.83.0-pre1 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2746 * Update version for v2.83.x by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2747 ## New Contributors * @HamzaWahed made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2714 * @SAY-5 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2718 * @martincostello made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2724 * @yasoob made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2671 * @osexpert made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2738 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.80.0...v2.83.0-pre1 ## 2.80.0 ## What's Changed * Update .NET 10, System.CommandLine 2.0.0, fix warnings by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2677 * Fix System.CommandLine 2.0.0 Uri parsing in GrpcClient benchmark app by @ilonatommy in https://github.com/grpc/grpc-dotnet/pull/2695 * Implement GrpcServiceEndpointConventionBuilder.Finally by @halter73 in https://github.com/grpc/grpc-dotnet/pull/2693 * Bump axios from 1.11.0 to 1.12.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2669 * Bump webpack from 5.101.0 to 5.105.0 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2689 * Bump lodash from 4.17.21 to 4.17.23 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2687 * Bump glob from 10.4.5 to 10.5.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2679 * Bump basic-ftp from 5.0.5 to 5.2.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2698 * Bump serialize-javascript and terser-webpack-plugin in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2699 * Bump minimatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2700 * Bump axios from 1.12.2 to 1.13.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2701 * Bump js-yaml in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2702 * Handle Trailers-Only OK responses in streaming calls without exception handling by @michaelmccord in https://github.com/grpc/grpc-dotnet/pull/2697 * Bump picomatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2703 * Implement v1 reflection service and clean up integration by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2704 * Bump brace-expansion in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2706 * Fix flaky PickAsync_UpdateAddressesWhileRequestingConnection_DoesNotDeadlock test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2705 * Bump Tools Version prep for release v2.80.0 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2707 * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2711 * Rel (v1.80.0) Prep for stable release by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2723 ## New Contributors * @ilonatommy made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2695 * @halter73 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2693 * @michaelmccord made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2697 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.76.0...v2.80.0 ## 2.80.0-pre1 ## What's Changed * Update .NET 10, System.CommandLine 2.0.0, fix warnings by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2677 * Fix System.CommandLine 2.0.0 Uri parsing in GrpcClient benchmark app by @ilonatommy in https://github.com/grpc/grpc-dotnet/pull/2695 * Implement GrpcServiceEndpointConventionBuilder.Finally by @halter73 in https://github.com/grpc/grpc-dotnet/pull/2693 * Bump axios from 1.11.0 to 1.12.2 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2669 * Bump webpack from 5.101.0 to 5.105.0 in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2689 * Bump lodash from 4.17.21 to 4.17.23 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2687 * Bump glob from 10.4.5 to 10.5.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2679 * Bump basic-ftp from 5.0.5 to 5.2.0 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2698 * Bump serialize-javascript and terser-webpack-plugin in /examples/Browser/Server/wwwroot by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2699 * Bump minimatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2700 * Bump axios from 1.12.2 to 1.13.6 in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2701 * Bump js-yaml in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2702 * Handle Trailers-Only OK responses in streaming calls without exception handling by @michaelmccord in https://github.com/grpc/grpc-dotnet/pull/2697 * Bump picomatch in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2703 * Implement v1 reflection service and clean up integration by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2704 * Bump brace-expansion in /testassets/InteropTestsGrpcWebWebsite/Tests by @dependabot[bot] in https://github.com/grpc/grpc-dotnet/pull/2706 * Fix flaky PickAsync_UpdateAddressesWhileRequestingConnection_DoesNotDeadlock test by @JamesNK in https://github.com/grpc/grpc-dotnet/pull/2705 * Bump Tools Version prep for release v2.80.0 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2707 * [Release v2.80.x] Fix the version number - Step 3 by @asheshvidyut in https://github.com/grpc/grpc-dotnet/pull/2711 ## New Contributors * @ilonatommy made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2695 * @halter73 made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2693 * @michaelmccord made their first contribution in https://github.com/grpc/grpc-dotnet/pull/2697 **Full Changelog**: https://github.com/grpc/grpc-dotnet/compare/v2.76.0...v2.80.0-pre1 Commits viewable in [compare view](https://github.com/grpc/grpc-dotnet/compare/v2.76.0...v2.83.0). </details> Updated [JsonDiffPatch.Net](https://github.com/wbish/jsondiffpatch.net) from 2.3.0 to 2.5.0. <details> <summary>Release notes</summary> _Sourced from [JsonDiffPatch.Net's releases](https://github.com/wbish/jsondiffpatch.net/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/wbish/jsondiffpatch.net/commits). </details> Updated [Microsoft.Build.Framework](https://github.com/dotnet/msbuild) from 18.8.2 to 18.10.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Framework's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.10.1 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13103 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13796 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13902 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13903 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13909 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13986 * Add vs18.9 to merge-flow config; retire vs18.3 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14214 * Bump labeler-cache-retention to use issue-labeler v2.1.0 by @jeffhandley in https://github.com/dotnet/msbuild/pull/14171 * Bump main to 18.10.0 after vs18.9 snap by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14216 * Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic baseline by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14220 * Determinize release: hardcode OptProf baseline + Phase 3.2 baseline resolver by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14222 * Serialize BuildRequestConfiguration.RequestedTargets to fix solution metaproject MSB4057 in parallel builds by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14223 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14203 * Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T> as task parameters by @baronfel in https://github.com/dotnet/msbuild/pull/13971 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14206 * Fix existence cache kind poisoning by @AlesProkop in https://github.com/dotnet/msbuild/pull/14249 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14226 * Don't disable the MSBuild server for /mt builds when node reuse is off by @AR-May in https://github.com/dotnet/msbuild/pull/14248 * Enhance expert reviewer guidelines with additional checks. by @AR-May in https://github.com/dotnet/msbuild/pull/14255 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14253 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14268 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14267 * Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14266 * Avoid boxing the struct enumerator in PropertyDictionary<T>.GetEnumerator() by @nareshjo in https://github.com/dotnet/msbuild/pull/14272 * Refresh copy marker when implementation output changes by @AlesProkop in https://github.com/dotnet/msbuild/pull/14231 * Send task-host build process environment as delta by @OvesN in https://github.com/dotnet/msbuild/pull/14126 * Add regression coverage for metadata newline preservation by @VolPlita in https://github.com/dotnet/msbuild/pull/14261 * Fix EmbedInBinlog items with relative paths from child projects by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13990 * Stop requiring VersionPrefix updates in servicing - insert prerelease versions to VS by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14277 * Fix WriteLinesToFile rewriting unchanged file when custom encoding is used by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/14146 * Enable trim/AOT analyzers for Microsoft.Build and clean up annotations by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/14064 * [automated] Merge branch 'vs18.9' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/14291 * Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com format by @AlesProkop in https://github.com/dotnet/msbuild/pull/14295 * Pass ExcludeRestorePackageImports during restore to avoid redundant evaluations by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14274 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13988 * Adopt Clever Test Selection (CTS) as parallel, non-blocking PR pipeline by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/14212 * Harden exceptions when connecting to server by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14292 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13886 * Fix MSBuild Server client dropping build result under WaitAny race (#14172) by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14251 * Partially revert #13660: remove NuGet RestoreTask transient TaskHost workaround by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14297 * Disable daily AI credits guardrail for Expert Code Review workflow by @JanProvaznik with @Copilot in https://github.com/dotnet/msbuild/pull/14314 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14614733 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/14246 * Add opt-in partial (stop-after-pass) project evaluation by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14290 * Use partial evaluation for -getProperty/-getItem without a target by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14296 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14324 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14333 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14330 * Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14328 * Restrict partial evaluation to ProjectInstance by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14340 ... (truncated) ## 18.9.6 ## What's Changed * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13793 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13859 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13858 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13863 * CsWin32 follow-up: CLR metadata + TypeLib interop migration by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13853 * Update vmr-sb-validation.yml for Azure Pipelines by @meghnave in https://github.com/dotnet/msbuild/pull/13871 * Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat (#13734) by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13878 * Add vs18.8 to merge-flow config by @OvesN in https://github.com/dotnet/msbuild/pull/13877 * Stable branding for 18.8 release by @OvesN in https://github.com/dotnet/msbuild/pull/13883 * Bump main to 18.9.0 after vs18.8 snap by @OvesN in https://github.com/dotnet/msbuild/pull/13880 * Avoid checkout in insertion pipeline by @rainersigwald in https://github.com/dotnet/msbuild/pull/13887 * Report actual launch path in MSB4216 for Runtime="NET" task host by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13889 * Migrate Tlblmp and AxImp to Multithreaded Execution by @AlesProkop in https://github.com/dotnet/msbuild/pull/13708 * Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13790 * Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13899 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13905 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13907 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13910 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13908 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13906 * Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13767 * Improve symlink cycle condition by @GangWang01 in https://github.com/dotnet/msbuild/pull/13901 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13904 * Add flaky-test detection and auto-fix agentic workflows by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13915 * Quote --ignore-exit-code values so the quarantine pipeline does not shell-split on Unix by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13918 * Fix flaky-test detector PR-evidence loss and raise scan limits by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13919 * Tighten the pr review agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13921 * Add environment variables for governance detection by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13920 * Change IsPackable to true and add IsShipping flag by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13924 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13911 * Make flaky detector verify recurrence postdates the fix before commenting by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13930 * Fix AbsolutePath.GetCanonicalForm process state leak on Windows by @OvesN in https://github.com/dotnet/msbuild/pull/13788 * Fix flaky detector: unblock dnceng feed, fail fast, and defer quarantine to a second run by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13936 * Update documentation for ImplicitUsings element by @drewnoakes in https://github.com/dotnet/msbuild/pull/13900 * [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main by @AlesProkop in https://github.com/dotnet/msbuild/pull/13923 * Add CS8618 suppressor for required MSBuild task properties by @AArnott in https://github.com/dotnet/msbuild/pull/13926 * Tighten NodeLaunchData.EnvironmentOverrides nullability to IDictionary<string, string?>? by @OvesN with @Copilot in https://github.com/dotnet/msbuild/pull/13815 * Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13917 * [automated] Merge branch 'vs18.6' => 'vs18.7' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13941 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14192258 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13849 * Bumping to 10.0.8 runtime packages by @OvesN in https://github.com/dotnet/msbuild/pull/13898 * Flaky-test workflow: reassure on empty PR list + drop local reproduction (quarantine-first) by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13938 * [Flaky Test] Un-quarantine 5 consistently-green tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13952 * Flaky-test detector: open PRs ready-for-review; drop newly-filed-issues section from PR body by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13958 * [Flaky Test] Quarantine 4 flaky tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13937 * Flaky-test: fix duplicate-issue bug by switching dedup key to a visible code-block key by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13963 * CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining hand-rolled interop by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13872 * Add the reviewer release skill checking if the Learn article Change waves is updated by @GangWang01 in https://github.com/dotnet/msbuild/pull/13840 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13977 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v18.8.2...v18.10.1). </details> Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 18.8.2 to 18.10.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.10.1 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13103 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13796 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13902 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13903 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13909 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13986 * Add vs18.9 to merge-flow config; retire vs18.3 by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14214 * Bump labeler-cache-retention to use issue-labeler v2.1.0 by @jeffhandley in https://github.com/dotnet/msbuild/pull/14171 * Bump main to 18.10.0 after vs18.9 snap by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14216 * Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic baseline by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14220 * Determinize release: hardcode OptProf baseline + Phase 3.2 baseline resolver by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14222 * Serialize BuildRequestConfiguration.RequestedTargets to fix solution metaproject MSB4057 in parallel builds by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14223 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14203 * Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T> as task parameters by @baronfel in https://github.com/dotnet/msbuild/pull/13971 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14206 * Fix existence cache kind poisoning by @AlesProkop in https://github.com/dotnet/msbuild/pull/14249 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14226 * Don't disable the MSBuild server for /mt builds when node reuse is off by @AR-May in https://github.com/dotnet/msbuild/pull/14248 * Enhance expert reviewer guidelines with additional checks. by @AR-May in https://github.com/dotnet/msbuild/pull/14255 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14253 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14268 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14267 * Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14266 * Avoid boxing the struct enumerator in PropertyDictionary<T>.GetEnumerator() by @nareshjo in https://github.com/dotnet/msbuild/pull/14272 * Refresh copy marker when implementation output changes by @AlesProkop in https://github.com/dotnet/msbuild/pull/14231 * Send task-host build process environment as delta by @OvesN in https://github.com/dotnet/msbuild/pull/14126 * Add regression coverage for metadata newline preservation by @VolPlita in https://github.com/dotnet/msbuild/pull/14261 * Fix EmbedInBinlog items with relative paths from child projects by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13990 * Stop requiring VersionPrefix updates in servicing - insert prerelease versions to VS by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14277 * Fix WriteLinesToFile rewriting unchanged file when custom encoding is used by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/14146 * Enable trim/AOT analyzers for Microsoft.Build and clean up annotations by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/14064 * [automated] Merge branch 'vs18.9' => 'main' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/14291 * Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com format by @AlesProkop in https://github.com/dotnet/msbuild/pull/14295 * Pass ExcludeRestorePackageImports during restore to avoid redundant evaluations by @ViktorHofer with @Copilot in https://github.com/dotnet/msbuild/pull/14274 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13988 * Adopt Clever Test Selection (CTS) as parallel, non-blocking PR pipeline by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/14212 * Harden exceptions when connecting to server by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14292 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13886 * Fix MSBuild Server client dropping build result under WaitAny race (#14172) by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14251 * Partially revert #13660: remove NuGet RestoreTask transient TaskHost workaround by @JanProvaznik in https://github.com/dotnet/msbuild/pull/14297 * Disable daily AI credits guardrail for Expert Code Review workflow by @JanProvaznik with @Copilot in https://github.com/dotnet/msbuild/pull/14314 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14614733 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/14246 * Add opt-in partial (stop-after-pass) project evaluation by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14290 * Use partial evaluation for -getProperty/-getItem without a target by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14296 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14324 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14333 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14330 * Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by @dependabot[bot] in https://github.com/dotnet/msbuild/pull/14328 * Restrict partial evaluation to ProjectInstance by @ViktorHofer in https://github.com/dotnet/msbuild/pull/14340 ... (truncated) ## 18.9.6 ## What's Changed * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13793 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13859 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13858 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13863 * CsWin32 follow-up: CLR metadata + TypeLib interop migration by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13853 * Update vmr-sb-validation.yml for Azure Pipelines by @meghnave in https://github.com/dotnet/msbuild/pull/13871 * Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat (#13734) by @jankratochvilcz in https://github.com/dotnet/msbuild/pull/13878 * Add vs18.8 to merge-flow config by @OvesN in https://github.com/dotnet/msbuild/pull/13877 * Stable branding for 18.8 release by @OvesN in https://github.com/dotnet/msbuild/pull/13883 * Bump main to 18.9.0 after vs18.8 snap by @OvesN in https://github.com/dotnet/msbuild/pull/13880 * Avoid checkout in insertion pipeline by @rainersigwald in https://github.com/dotnet/msbuild/pull/13887 * Report actual launch path in MSB4216 for Runtime="NET" task host by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13889 * Migrate Tlblmp and AxImp to Multithreaded Execution by @AlesProkop in https://github.com/dotnet/msbuild/pull/13708 * Replace ErrorUtilities assertion methods with Assumed API and BCL throw helpers by @DustinCampbell in https://github.com/dotnet/msbuild/pull/13790 * Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13899 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13905 * [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13907 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13910 * [vs17.14] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13908 * [vs18.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13906 * Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by @huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13767 * Improve symlink cycle condition by @GangWang01 in https://github.com/dotnet/msbuild/pull/13901 * [vs18.6] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13904 * Add flaky-test detection and auto-fix agentic workflows by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13915 * Quote --ignore-exit-code values so the quarantine pipeline does not shell-split on Unix by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13918 * Fix flaky-test detector PR-evidence loss and raise scan limits by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13919 * Tighten the pr review agent by @JanKrivanek in https://github.com/dotnet/msbuild/pull/13921 * Add environment variables for governance detection by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13920 * Change IsPackable to true and add IsShipping flag by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13924 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13911 * Make flaky detector verify recurrence postdates the fix before commenting by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13930 * Fix AbsolutePath.GetCanonicalForm process state leak on Windows by @OvesN in https://github.com/dotnet/msbuild/pull/13788 * Fix flaky detector: unblock dnceng feed, fail fast, and defer quarantine to a second run by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13936 * Update documentation for ImplicitUsings element by @drewnoakes in https://github.com/dotnet/msbuild/pull/13900 * [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main by @AlesProkop in https://github.com/dotnet/msbuild/pull/13923 * Add CS8618 suppressor for required MSBuild task properties by @AArnott in https://github.com/dotnet/msbuild/pull/13926 * Tighten NodeLaunchData.EnvironmentOverrides nullability to IDictionary<string, string?>? by @OvesN with @Copilot in https://github.com/dotnet/msbuild/pull/13815 * Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in AspNetCompiler) by @YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13917 * [automated] Merge branch 'vs18.6' => 'vs18.7' by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13941 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14192258 by @dotnet-bot in https://github.com/dotnet/msbuild/pull/13849 * Bumping to 10.0.8 runtime packages by @OvesN in https://github.com/dotnet/msbuild/pull/13898 * Flaky-test workflow: reassure on empty PR list + drop local reproduction (quarantine-first) by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13938 * [Flaky Test] Un-quarantine 5 consistently-green tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13952 * Flaky-test detector: open PRs ready-for-review; drop newly-filed-issues section from PR body by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13958 * [Flaky Test] Quarantine 4 flaky tests by @github-actions[bot] in https://github.com/dotnet/msbuild/pull/13937 * Flaky-test: fix duplicate-issue bug by switching dedup key to a visible code-block key by @ViktorHofer in https://github.com/dotnet/msbuild/pull/13963 * CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining hand-rolled interop by @JeremyKuhne in https://github.com/dotnet/msbuild/pull/13872 * Add the reviewer release skill checking if the Learn article Change waves is updated by @GangWang01 in https://github.com/dotnet/msbuild/pull/13840 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13977 ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/msbuild/compare/v18.8.2...v18.10.1). </details> Updated [Microsoft.Extensions.Configuration](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration.Binder](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration.Binder's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration.Json](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration.Json's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.DependencyInjection's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.FileSystemGlobbing](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.FileSystemGlobbing's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Hosting](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Hosting's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Http](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Logging](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Logging's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.NET.Sdk.WebAssembly.Pack](https://github.com/dotnet/dotnet) from 10.0.8 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Sdk.WebAssembly.Pack's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 18.7.0 to 18.10.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Test.Sdk's releases](https://github.com/microsoft/vstest/releases)._ ## 18.10.0 ## What's Changed * Drop Mono fallback, run .NET Framework tests on Windows only by @nohwnd in https://github.com/microsoft/vstest/pull/16158 * Run Microsoft.Testing.Platform test apps under `vstest.console` and datacollector by @nohwnd in https://github.com/microsoft/vstest/pull/16201 * Fix test output eaten by MSBuild terminal logger by @nohwnd in https://github.com/microsoft/vstest/pull/16223 * Remove the experimental test session feature by @nohwnd in https://github.com/microsoft/vstest/pull/16231 * Skip a single bad executor instead of failing all executor loading by @nohwnd in https://github.com/microsoft/vstest/pull/16239 * Assert apartment state instead of using Clipboard in UI tests by @nohwnd in https://github.com/microsoft/vstest/pull/16270 * Surface test host crashes during protocol negotiation by @nohwnd in https://github.com/microsoft/vstest/pull/16285 * Pass the inferred target platform to the host in run settings by @nohwnd in https://github.com/microsoft/vstest/pull/16271 * Report raw invalid IsTargetPlatformInferred value, cover host x64 forcing by @nohwnd in https://github.com/microsoft/vstest/pull/16295 * Disable the MTP testhost by default (#16337) by @nohwnd in https://github.com/microsoft/vstest/pull/16341 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.9.0...v18.10.0 ## 18.9.0 ## What's Changed * Fix tilde/exclamation characters corrupted in TerminalLogger test output by @nohwnd in https://github.com/microsoft/vstest/pull/16046 * Make TranslationLayer Native AOT-compatible by @drewnoakes in https://github.com/microsoft/vstest/pull/16045 * Guard GenerateProgramFile target against UseWinUI/UseUwpTools evaluation order by @nohwnd in https://github.com/microsoft/vstest/pull/16072 * Add RequestingAssembly to AssemblyResolveEventArgs for binary compat by @nohwnd in https://github.com/microsoft/vstest/pull/16076 * Remove stale Microsoft.Extensions.FileSystemGlobbing binding redirect from testhost.x86 and datacollector by @Evangelink in https://github.com/microsoft/vstest/pull/16082 * Fix TRX attachment paths when LogFileName contains a subdirectory by @nohwnd in https://github.com/microsoft/vstest/pull/15791 * Fix missing dumps for .NET Framework child processes in NetClientHangDumper by @nohwnd in https://github.com/microsoft/vstest/pull/16098 * Fix data collection channels to use negotiated protocol version instead of V1 by @nohwnd in https://github.com/microsoft/vstest/pull/16096 * Fix race condition in BlameCollector: skip hang dump when testhost hasn't launched yet by @nohwnd in https://github.com/microsoft/vstest/pull/16065 * Replace TestSDKAutoGeneratedCode with ExcludeFromCodeCoverage in auto-generated Program files by @nohwnd in https://github.com/microsoft/vstest/pull/16101 * Include testhost process path in crash error messages by @nohwnd in https://github.com/microsoft/vstest/pull/16108 * Fix DataDriven test results being double-counted in TRX logger totals by @nohwnd in https://github.com/microsoft/vstest/pull/15766 * Fix datacollector crash visibility: replace Assert with throwable exceptions by @nohwnd in https://github.com/microsoft/vstest/pull/16048 * Add TreatErrorMessagesAsWarnings parameter to TRX logger by @nohwnd in https://github.com/microsoft/vstest/pull/16106 * Wait for testhost stderr to drain before reading its crash output by @nohwnd in https://github.com/microsoft/vstest/pull/16128 * Handle runtimeconfig.dev.json without additionalProbingPaths by @tmat in https://github.com/microsoft/vstest/pull/16166 * Suggest Microsoft.NET.Test.Sdk when a managed test project brings no testhost by @nohwnd in https://github.com/microsoft/vstest/pull/16169 * Fix x86 testhost loading mismatched x64 hostfxr (0x800700C1) when run via vstest.console.exe directly (#16151) by @azat-msft in https://github.com/microsoft/vstest/pull/16156 * Preserve the real exception (type + stack trace) when a test run aborts in BaseRunTests by @nohwnd in https://github.com/microsoft/vstest/pull/16167 ## New Contributors * @drewnoakes made their first contribution in https://github.com/microsoft/vstest/pull/16045 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.8.0...v18.9.0 ## 18.8.1 ## What's Changed * Fix protocol negotiation timeout when STJ reflection is disabled (18.8.1) by @nohwnd in https://github.com/microsoft/vstest/pull/16281 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.8.0...v18.8.1 ## 18.8.0 ## What's Changed * Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to main) by @nohwnd in https://github.com/microsoft/vstest/pull/15687 - For more detail refer to https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/ * Create source-only filter package by @Youssef1313 in https://github.com/microsoft/vstest/pull/15638 * Add ARM64 msdia140.dll support to test platform packages by @nohwnd in https://github.com/microsoft/vstest/pull/15692 * Fix mutex cleanup crash on macOS/Linux by @nohwnd in https://github.com/microsoft/vstest/pull/15684 * Restrict artifact temp directory permissions on Unix by @nohwnd in https://github.com/microsoft/vstest/pull/15729 * Add support for filtering uncategorized tests with TestCategory=None by @Evangelink in https://github.com/microsoft/vstest/pull/15727 * Fix SCI binding failure in DTA hosts (main) by @nohwnd in https://github.com/microsoft/vstest/pull/15724 * Fix HTML logger parallel file collision by @nohwnd in https://github.com/microsoft/vstest/pull/15435 * Improve error message when testhost cannot be found by @nohwnd in https://github.com/microsoft/vstest/pull/16053 * Fix HTML logger exception on invalid XML chars in test display names by @nohwnd in https://github.com/microsoft/vstest/pull/16051 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.7.0...v18.8.0 Commits viewable in [compare view](https://github.com/microsoft/vstest/compare/v18.7.0...v18.10.0). </details> Updated [Microsoft.PowerPlatform.ResourceStack](https://github.com/azure/resourcestack) from 7.0.0.2080 to 7.0.0.2118. <details> <summary>Release notes</summary> _Sourced from [Microsoft.PowerPlatform.ResourceStack's releases](https://github.com/azure/resourcestack/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/azure/resourcestack/commits). </details> Updated [Microsoft.PowerPlatform.ResourceStack](https://github.com/azure/resourcestack) from 7.0.0.2080 to 7.0.0.2129. <details> <summary>Release notes</summary> _Sourced from [Microsoft.PowerPlatform.ResourceStack's releases](https://github.com/azure/resourcestack/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/azure/resourcestack/commits). </details> Updated [Microsoft.VisualStudio.Threading](https://github.com/microsoft/vs-threading) from 17.12.19 to 18.7.23. <details> <summary>Release notes</summary> _Sourced from [Microsoft.VisualStudio.Threading's releases](https://github.com/microsoft/vs-threadin…
Summary
Fixes an
MSB4018crash whereToolTask-derived tasks fail with:This reproduces with tasks that execute on an STA thread (e.g.
AspNetCompilerviaMicrosoft.Web.Publishing.AspNetCompileMerge.targets).Root cause
WaitForProcessExit(under theWave18_6change wave) waited for both the stdout and stderr EOF events with:WaitHandle.WaitAllover multiple handles is not supported on STA threads and throwsNotSupportedException, surfacing to the user asMSB4018.Fix
Replace the two stdout/stderr
ManualResetEvents with a singleCountdownEventinitialized to a count of 2 (one per stream). Each stream signals it once when itsAsyncStreamReaderreaches EOF (Data=null), andWaitForProcessExitawaits it withCountdownEvent.Wait, which is STA-safe (it relies on a single-handle wait rather thanWaitAllover multiple handles):The success/timeout semantics are unchanged:
allEOFReceivedistrueonly when both streams reached EOF within the timeout; on timeout the task still drains partial output and logsToolTask.PipeEOFTimeout. Signaling and disposal remain serialized by_eventCloseLock, and theIsSetguard prevents over-signaling.Validation
Microsoft.Build.Utilitiesbuilds clean (0 warnings, 0 errors).CountdownEvent.Signal()cannot throw (serialized +IsSetguarded), no spurious 30s timeout on normal exit, no deadlock, and the Wave18_6-disabled path leaves_eofCountdownnull and untouched.