title: Sharing resources between .NET Add-In and Host
body: <p>The application I develop uses add-ins with the .NET add-in functionality provided by <code>System.AddIn</code>. My host application as well as the add-ins <strong>share some resources</strong> like WPF embedded fonts and XAML icons. I'd like to <strong>avoid including them in both the host and the add-ins</strong>. Is there any way to achieve this without too much complexity?</p>
  
  <p>My application already consists of 7 parts: The host, host-side view, host-side adapter, contract, add-in-side adapter, add-in-side view and finally the add-in. The problem I see is that, while the host loads the add-in assemblies, it's impossible for the add-in to access resources located in the host assembly.</p>
  
  <p>The add-in provides a service which the host consumes. I want my host to provide resources which the add-in consumes.</p>
  
  <p>A possible solution would be to introduce another assembly containing all the resources, which is accessed by both the host and the add-ins. What are the positive / negative aspects of this solution? Like, can an add-in rely on the existence of this assembly when it's not a contract?</p>