Fix solution-based graph builds when non 'well-known' project types are used #9384
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #9375
Previously, only projects which were
SolutionProjectType.KnownToBeMSBuildFormat
(handful of project type guids) would be considered. This would cause some projects in a sln to not be in the graph at all.This change removes that check and in general brings solution-based graph construction slightly more aligned with how non-graph builds construct the metaproj (
SolutionProjectGenerator
). My ideal scenario would be that the graph would just directly call intoSolutionProjectGenerator
to create a metaproj and then use that as the entry point into the graph construction, but we would need to teach the metaproj the p2p protocol used for graph which is a bit more work. Maybe one day though :)Change details:
SolutionProjectType.KnownToBeMSBuildFormat
ProjectConfigurations
with a call toSolutionFile.IsBuildableProject
, which does that and also filters outSolutionProjectType.SolutionFolder
projectConfiguration.IncludeInBuild
andSolutionFile.ProjectShouldBuild
with a call toSolutionProjectGenerator.WouldProjectBuild
, which does both those checks.