I lost information about where I found this little trick, but one thing you can do is dynamically import resource dictionaries when building external assemblies.
In each assembly with resources, you export one or more ResourceDictionary objects, sorting through the code and commenting this as follows:
[Export(typeof(ResourceDictionary))]
public partial class Resources : ResourceDictionary
{
public Resources()
{
InitializeComponent();
}
}
, [ImportMany] IEnumerable<ResourceDictionary> resourceDictionaries - :
foreach (var resourceDictionary in resourceDictionaries)
{
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);
}