Motivation
CI builds the shipped single-DLL artifact with ILRepack, folding FanaBridge.Core and FanaBridge.Updater into merged/FanaBridge.dll. The existing test step still runs against the separate development assemblies.
Merge-sensitive behavior—type identity, BAML resource keys, and embedded-resource manifest names—therefore has no repeatable CI protection. These surfaces were verified manually for #103.
Scope
Add a post-merge contract check that runs in a separate process and loads the exact merged FanaBridge.dll produced by MergePlugin.
Keep this as a focused artifact-level smoke check rather than duplicating the normal unit suite. It should cover the merged plugin’s essential loading contracts:
- The plugin entry type,
FanaBridge.FanatecPlugin, is present.
- Built-in wheel profiles can be enumerated and loaded.
- Expected BAML resource keys are present.
- Representative WPF controls can be constructed on an STA thread.
Wire the check into .github/workflows/build.yml after the merge step so packaging cannot proceed with a structurally broken artifact.
Acceptance criteria
Motivation
CI builds the shipped single-DLL artifact with ILRepack, folding
FanaBridge.CoreandFanaBridge.Updaterintomerged/FanaBridge.dll. The existing test step still runs against the separate development assemblies.Merge-sensitive behavior—type identity, BAML resource keys, and embedded-resource manifest names—therefore has no repeatable CI protection. These surfaces were verified manually for #103.
Scope
Add a post-merge contract check that runs in a separate process and loads the exact merged
FanaBridge.dllproduced byMergePlugin.Keep this as a focused artifact-level smoke check rather than duplicating the normal unit suite. It should cover the merged plugin’s essential loading contracts:
FanaBridge.FanatecPlugin, is present.Wire the check into
.github/workflows/build.ymlafter the merge step so packaging cannot proceed with a structurally broken artifact.Acceptance criteria
FanaBridge.dllin a separate process.MergePluginproduces the merged DLL.