dotnet / dotnet/project-system
Consolidate project property providers
- 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
Assessment
This issue has not been assessed yet.