| name | frb-source-linking |
| description | What "Link Game to FRB Source" actually swaps in a game project's references, vs. the plain checker. Triggers: IsFrbSourceLinked, AddSourceManager, FrbSourcePlugin, GumCore.DesktopGlNet6.dll, stale prebuilt Gum/FRB binaries, Libraries\DesktopGl. |
Linking a Game Project to FRB Source
Two different things — don't conflate them
VisualStudioProject.IsFrbSourceLinked() (Glue/VSHelpers/Projects/VisualStudioProject.cs) is only a checker: true iff the project has a <ProjectReference> to FlatRedBallDesktopGLNet6.csproj. Reading only this tells you nothing about what else linking touches — it's easy to wrongly conclude linking only affects the core FRB engine reference.
- The actual link action is
AddSourceManager (FRBDK/Glue/OfficialPlugins/FrbSourcePlugin/Managers/AddSourceManager.cs), and it's much broader.
What linking actually does
For the target platform (DesktopGlNet6/DesktopFNA/Web/AndroidNet8/IosNet8 — see the matching lists in AddSourceManager.cs), it removes the platform's prebuilt DLL/NuGet references (RemoveDllReference/RemoveNugetReference — GumCore.DesktopGlNet6, SkiaInGum, FlatRedBall.GumCore.DesktopGlNet6, etc.) and replaces them with real <ProjectReference>s into both FRB's engine projects (FrbOrGum.Frb) and Gum's own (FrbOrGum.Gum, e.g. GumCore\GumCoreXnaPc\GumCore.DesktopGlNet6\GumCore.DesktopGlNet6.csproj).