dotnet / dotnet/msbuild

Separate the target protocol for the p2p protocol from the managed languages target protocol

Open
#5,164 0 comments 0 reactions 0 assignees View on GitHub
Area: Static Graph triaged
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.