The Wire · Showcase
MSBuild Clears Up Multi-Threading Confusion with New Analyzer Rules
By RepoJournal · Filed · About .NET
If you've ever confused MSBuild's two multi-threading declarations, you're not alone, but a new PR aims to end the mix-ups.
MSBuild's task routing just got a much-needed clarity boost. The docs and analyzer rules now distinguish between [MSBuildMultiThreadableTask] and IMultiThreadableTask, which "do different jobs" and were dangerously described as interchangeable [1]. This is a breaking change for anyone relying on the old, vague guidance. Meanwhile, the team is also fixing a subtle but nasty bug where tasks in the task host read item metadata differently than in-process tasks, potentially resolving path errors [2]. And performance work continues: a PR streamlines string expansion, a hot path for every build [3]. Over in dotnet/skills, the test-gap-analysis skill got a major efficiency overhaul, shrinking its always-loaded payload by 47.9% and improving routing reliability [4]. The evaluation dashboard now surfaces statistically rigorous verdict evidence, with the Vally pass gate based on distinct-stimulus preference [5]. MAUI hardened its CI against malicious scheduled workflows in forks [6]. All told, 14 commits and 14 PRs across the three repos, but the headline is MSBuild's multi-threading clarity.
One email a day. Unsubscribe in one click.
Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review your MSBuild tasks for MSBuildMultiThreadableTask vs IMultiThreadableTask usage dotnet/msbuild [immediate]
- → Watch for the task host metadata fix and expansion performance improvements in MSBuild dotnet/msbuild [plan]
- → Monitor the test-gap-analysis skill changes for your C# and Rust evals dotnet/skills [monitor]
References
- [1] Correct MT routing docs and add analyzer rules for mismatched declarations (#14809) dotnet/msbuild
- [2] Expand built-in metadata references in the task host ↗ dotnet/msbuild
- [3] Improve MSBuild expansion performance ↗ dotnet/msbuild
- [4] Improve test gap analysis routing and efficiency ↗ dotnet/skills
- [5] Show authoritative verdict evidence in evaluation dashboard ↗ dotnet/skills
- [6] [ci] Prevent scheduled workflows from running in forks ↗ dotnet/maui