Define shared plugin resources (e.g., a ribbon group) in a library which is not itself a plugin

Hi all -

I'm still using Trados Studio 2017, for various reasons.

I have a few different plugins that I'm building, and I'd like them to share some resources that require the SDL API. For instance, I'd like to add a ribbon group where all the plugins can place things. My strategy, so far, for doing this has been:

- create an SDL plugin project

- remove everything that seems to cause a plugin to be created (PluginResources.resx, pluginpackage.manifest.xml, Properties\PluginProperties.cs)

- define my ribbon group, along with a dummy action which is placed in the ribbon group, and add an icon for the action, and decorate the ribbon group and the action with the appropriate attributes, just as I would if I were defining the ribbon group in a normal plugin

- include the bastardized project in the plugin(s) I want to put them in

- compile

What happens is mysterious:

-  the DLL for the bastardized project is built, and the compilation target directory is populated with all sorts of SDL dependencies

- even though the DLL is built, I get an error: "MSBUILD : error PFE004: Assembly could not be found: 'Sdl.Core.PluginFramework'. Have you added a reference to the plugin framework and added relevant code?". The PluginFramework assembly is referenced in the bastardized project.

- the plugin which depends on this DLL also builds, and includes the DLL which contains the ribbon group declaration, in spite of the error above.

- but the new ribbon group does NOT display

So:

- if the DLL builds, what is the error telling me?

- if the DLL is included in the plugin, why isn't the ribbon group appearing?

Thanks in advance. I don't believe for a second that this is the right way to set things up, but I can't figure out what the right way would be, or even if there IS a right way.