Roger,
"...proxygen all strong named proxies and pass all non-strong-named assemblies as System.Objects (ie: as properties off the root object) and set a reference assemblies in the addin to these only."
Further comments from the MS VSTA team:
Because it is not practical to provide proxygen strong-named assemblies for input (inclusion in the proxy layer), your non-strong-named assemblies can be referenced directly by an addin, but must be deployed in each addin’s ApplicationBase directory (or a subdirectory, if you setup a PrivateBinPath).
Along the same line…there may be a way to simplify this deployment by commonly storing all the non-strong-named assemblies in one root/ApplicationBase directory and setting a PrivateBinPath for each addin’s directory below the root. You would have to try this to see if it works.
==
I had another thought:
It may be easier for you to create interop assemblies for your TLBs (interop assemblies are auto-generated by setting a reference to a COM component in a Visual Studio managed project).
Each interop assembly could probably be strong-named, GAC’ed, and referenced by the addin.
Then, at startup, the addin’s proxy would supply a generic Object reference passed along from the host app (via IDispatch), and the Object would be cast to a strong type defined in the interop assembly.
Regards,
Gary