dotnet / dotnet/project-system

Consolidate project property providers

Open
#4,473 0 comments 0 reactions 0 assignees View on GitHub
Feature-Rules/Properties Triage-Approved
Dominant language
C#
Stars
1k
Forks
415
PR merge metrics
No merged PRs in 30d

Description

We currently have two implementations of IProjectPropertiesProvider, one that uses just the project snapshot specified by `ProjectFileWithInterceptionViaSnapshot` and one that doesn't specified by `ProjectFileWithInterception`. The former performs better but some properties are incompatible with it and so must fall back to the latter. Specifically `TargetFrameworkMonikers`, `PreBuildEvent` and `PostBuildEvent` are incompatible.

Having two is an extra burden on developers implementing new properties, to work out which provider to use, as well as generally being technical debt and code duplication.

We should rewrite the properties that are currently incompatible and consolidate both providers into one, by removing `ProjectFileInterceptedProjectPropertiesProvider` and renaming `ProjectFileInterceptedViaSnapshotProjectPropertiesProvider ` and associated things to remove the `ViaSnapshot` specifier.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.