A component can compile in a shared assembly and still be impossible to construct in one of the applications that renders it.
That is easy to miss when browser and .NET MAUI hosts reuse the same Blazor pages. The feature appears to exist once, but every host still owns a dependency-injection container, startup path, and lifetime model.
A recent committed fix made this concrete. A shared page gained a required workflow dependency. Native hosts registered it in their common bootstrap path. A browser host rendered the same page through another composition root, where the dependency was unknown. The page failed before it could render.
The lasting lesson was not “remember one more registration.” It was that shared UI creates a contract for every host capable of rendering it.
Sharing an assembly does not share a container






