Skip to content

Migrate multithreaded tasks to strongly typed path parameters across dotnet repositories #14821

Description

@OvesN

Summary

Track the follow-up migration of path-like parameters on multithreaded MSBuild tasks to the strongly typed task parameter APIs introduced by #13971:

  • string / string[] path parameters to AbsolutePath, FileInfo, or DirectoryInfo
  • ITaskItem / ITaskItem[] path parameters to ITaskItem<T> / ITaskItem<T>[]

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. Unresolvable task parameter type crashes with NullReferenceException instead of reporting a diagnostic #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 Unresolvable task parameter type crashes with NullReferenceException instead of reporting a diagnostic #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

Metadata

Metadata

Assignees

Labels

Area: TasksIssues impacting the tasks shipped in Microsoft.Build.Tasks.Core.dll.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions