Skip to content

Delete the .NET Framework / Xamarin era GumCore, GumDataTypes, GumRuntime and ToolsUtilities projects - #4338

Merged
vchelaru merged 1 commit into
mainfrom
4334-delete-legacy-net-framework-projects
Aug 4, 2026
Merged

Delete the .NET Framework / Xamarin era GumCore, GumDataTypes, GumRuntime and ToolsUtilities projects#4338
vchelaru merged 1 commit into
mainfrom
4334-delete-legacy-net-framework-projects

Conversation

@vchelaru

@vchelaru vchelaru commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Closes #4334.

Deletes the 8 legacy net472/Xamarin/UWP csproj (GumCoreXnaPc.csproj, GumCoreDesktopGL.csproj, flat GumCoreAndroid.csproj/GumCoreiOS.csproj, GumCoreUwp/, GumDataTypes.csproj, GumRuntime.csproj, ToolsUtilities.csproj) plus their exclusive orphaned Properties/AssemblyInfo.cs/Resources//packages.config, and the already-broken/unreferenced GumRuntimeStandard project (dead - references a nonexistent GumDataTypesStandard.csproj, in no .sln, confirmed via a 386-error build).

Simplifies the #if gates that existed only for those deleted targets: NET6_0_OR_GREATER gates in GumRuntime/RenderingLibrary become unconditional, ANDROID || IOS branches in GumDataTypes/ToolsUtilities/FileManager.cs collapse away.

Two corrections to the issue, verified by building the affected csproj directly:

  • The NET5_0_OR_GREATER trim-attribute gates in GumDataTypes/*.cs and ToolsUtilities/ReflectionManager.cs are not net472-only - GumDataTypesNet6.csproj/ToolsUtilitiesStandard.csproj still multi-target netstandard2.0, which lacks these attributes. Removing the gates broke that build in testing; left in place with corrected comments.
  • Not all ANDROID || IOS branches are Xamarin-only. MonoGameGum.csproj/KniGum.csproj define ANDROID/IOS for their net9.0-android/net9.0-ios targets and compile Gum/Wireframe/CustomSetPropertyOnRenderable.cs and Gum/Graphics/Animation/Content/AnimationChainListSave.cs directly - those two gates are live and untouched.

Also updates .claude/agents/coder.md's netstandard2.0-floor guidance (now names both affected projects) and its projitems-sync project list (drops the deleted entries).

Verification

  • dotnet build GumFull.sln - 0 errors
  • dotnet build GumDataTypes/GumDataTypesNet6.csproj / ToolsUtilities/ToolsUtilitiesStandard.csproj (netstandard2.0 legs) - 0 errors
  • MonoGameGum.Tests (2133 tests), Gum.ProjectServices.Tests (473 tests), RaylibGum.Tests (576 tests) - all pass
  • FRB canary (GumCore.DesktopGlNet6.csproj against FlatRedBall NetStandard @ 56efdd0f6) - pass, 0 errors

Manual test: not needed - pure project/dead-code deletion and preprocessor simplification with no runtime-observable behavior change, covered by compilation across all remaining targets + the existing unit test suites + FRB canary.

…time and ToolsUtilities projects

FRB1 (vchelaru/FlatRedBall#1954, NetStandard @ 56efdd0f6) no longer references
GumCoreXnaPc.csproj, GumCoreDesktopGL.csproj, the flat GumCoreAndroid.csproj/
GumCoreiOS.csproj (Xamarin), GumCoreUwp/, GumDataTypes.csproj, GumRuntime.csproj,
or ToolsUtilities.csproj, and nothing in this repo does either. Delete them along
with the Properties/AssemblyInfo.cs, Resources/, and packages.config files that
existed only for them, and the already-broken/unreferenced GumRuntimeStandard
project (references a nonexistent GumDataTypesStandard.csproj, in no .sln).

Simplify the #if gates that existed only to keep those deleted net472/Xamarin/UWP
targets compiling: NET6_0_OR_GREATER gates in GumRuntime/RenderingLibrary (their
only netstandard2.0 consumer was the now-deleted GumRuntimeStandard) become
unconditional, and the ANDROID||IOS branches in GumDataTypes/ToolsUtilities
collapse away (no remaining consumer of those files defines ANDROID/IOS - that
symbol is still alive elsewhere, see below).

Correct two claims from the issue, verified by building the affected csproj
directly:
- The NET5_0_OR_GREATER trim-attribute gates in GumDataTypes/*.cs and
  ToolsUtilities/ReflectionManager.cs are NOT solely a net472 artifact -
  GumDataTypesNet6.csproj and ToolsUtilitiesStandard.csproj still multi-target
  netstandard2.0, which lacks these attributes. Removing the gates broke that
  build in testing; left them in place (with corrected comments).
- Not all "ANDROID || IOS" branches are Xamarin-only. MonoGameGum.csproj and
  KniGum.csproj define ANDROID/IOS for their net9.0-android/net9.0-ios targets
  and compile Gum/Wireframe/CustomSetPropertyOnRenderable.cs and
  Gum/Graphics/Animation/Content/AnimationChainListSave.cs directly - those two
  gates are live and untouched.

Updates .claude/agents/coder.md's netstandard2.0-floor guidance to name both
affected projects (previously only mentioned ToolsUtilities/net472) and to drop
the now-deleted GumCoreUwp/GumCoreDesktopGL/GumCoreXnaPc/flat-Android/flat-iOS
entries from the projitems-sync project list.

Closes #4334

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vchelaru
vchelaru enabled auto-merge (squash) August 4, 2026 15:59
@vchelaru
vchelaru merged commit d87930c into main Aug 4, 2026
6 checks passed
@vchelaru
vchelaru deleted the 4334-delete-legacy-net-framework-projects branch August 4, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Delete the .NET Framework / Xamarin era GumCore, GumDataTypes, GumRuntime and ToolsUtilities projects

1 participant