Separate the target protocol for the p2p protocol from the managed languages target protocol
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 141
Description
Microsoft.Net.Sdk managed projects (C#, VB) are static graph friendly by having their [target protocol](https://github.com/microsoft/msbuild/blob/master/documentation/specs/static-graph.md#inferring-which-targets-to-run-for-a-project-within-the-graph) specified [here ](https://github.com/microsoft/msbuild/blob/master/src/Tasks/Microsoft.Managed.Before.targets) and [here](https://github.com/microsoft/msbuild/blob/master/src/Tasks/Microsoft.Managed.After.targets).
Unfortunately this specification mixes together the target protocol for the generic [p2p protocol](https://github.com/microsoft/msbuild/blob/master/documentation/ProjectReference-Protocol.md), and the target protocol for managed language projects (which, super sadly, is smeared across the msbuild repo and Microsoft.Net.Sdk).
This means that today, sdks that implement the generic p2p protocol (other than Microsoft.Net.Sdk) cannot get the static graph protocol for free, they have to copy paste and remove the C# specific bits.
Consider separating the target protocol for the p2p protocol from the managed languages target protocol. Keep the former in the MSBuild repo, which owns the generic p2p protocol, and move the latter somewhere else, maybe in the Microsoft.Net.Sdk repo.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.