Migrate multithreaded tasks to strongly typed path parameters across dotnet repositories
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 141
Description
## Summary
Track the follow-up migration of path-like parameters on multithreaded MSBuild tasks to the strongly typed task parameter APIs introduced by dotnet/msbuild#13971:
- `string` / `string[]` path parameters to `AbsolutePath`, `FileInfo`, or `DirectoryInfo`
- `ITaskItem` / `ITaskItem[]` path parameters to `ITaskItem` / `ITaskItem[]`
This is separate from adding `[MSBuildMultiThreadableTask]` and `IMultiThreadableTask`: the tasks should first be safe for multithreaded execution, then their public parameter types can be migrated where compatibility permits.
## Blocked
Do not land migrations for task assemblies that can run under Visual Studio / .NET Framework MSBuild until:
1. dotnet/msbuild#14680 is resolved and the required fix is inserted into Visual Studio.
2. The consuming repository's minimum supported MSBuild host includes strongly typed task parameter binding (MSBuild 18.10 or newer).
3. The intended parameter types resolve successfully in cross-runtime `Runtime="NET"` task-host scenarios. A change that only replaces the #14680 crash with a diagnostic does not by itself make those parameter types usable.
Tasks guaranteed to run only with a matching .NET SDK/MSBuild host can be evaluated separately, but the lockstep host guarantee must be documented and tested.
## Repository tracking
- [ ] **dotnet/msbuild** — follow up the task inventory in #11834
- [ ] **dotnet/sdk** — follow up the task inventory in #11835
- [ ] **dotnet/roslyn** — follow up #14229
- [ ] **NuGet/NuGet.Client** — follow up #11836
- [ ] **dotnet/sourcelink** — follow up the completed multithreaded migration tracked by #14093
- [ ] Identify other dotnet repositories shipping MSBuild task assemblies and add repo-specific tracking
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.