chore: consolidate 9 Roslyn-versioned project duplicates#4943
Conversation
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. This is a well-executed MSBuild refactor. A few things worth calling out positively: RoslynVersion derivation is correct. The two-step regex ( Condition specificity is solid. Using Behavior parity is maintained. The conditional
The result is each Roslyn-versioned |
a28b359 to
dfc5091
Compare
dfc5091 to
cfc5bc9
Compare
cfc5bc9 to
e1b1e9d
Compare
…props Reduce duplication across the 9 Roslyn-versioned analyzer/generator projects by centralizing shared configuration: - Merge three near-identical Directory.Build.props PropertyGroup blocks into one that dynamically derives AssemblyName, RootNamespace, and RoslynVersion from the project name using MSBuild regex functions - Consolidate Analyzer.props, AspNetCore.Analyzer.props, and SourceGenerator.props into a single Roslyn.props that uses the derived _BaseProjectName property to link source files from the correct base project - Remove explicit RoslynVersion from all 9 .csproj files (now derived) - Remove Folder items from SourceGenerator .csproj files (moved to Roslyn.props) The 9 .csproj files are now minimal 3-line stubs that only import Roslyn.props. Adding a new Roslyn version target requires only creating a new directory with a stub .csproj -- no other files need updating.
e1b1e9d to
0bdbc78
Compare
Summary
Result: Each Roslyn-versioned .csproj is now a minimal 3-line stub that only imports Roslyn.props. Adding a new Roslyn version target requires only creating a new directory with a stub .csproj -- no other files need updating.
Net change: 14 files changed, 39 insertions, 111 deletions (-72 lines). Three .props files deleted.
Closes #4883
Test plan