Descubrí que tenía que hacer referencia al ensamblaje en sí y no usar un nombre de proyecto. Tampoco necesité usar la sintaxis pack// para hacer que esto funcione.
Esta respuesta sobre la cuestión duplicado especifica el formato a utilizar (puedo comprobar que esta sintaxis funciona en .NET 4.0): https://stackoverflow.com/a/10216253/1260563
concreto (ya que siempre se me olvida la parte componente pensando que es una carpeta a alguien está utilizando):
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>
Así que si usted tiene un ensamblaje Abc.Def.dll y un archivo DLL en el que llama Xyz.xaml en el nivel raíz se debería utilizar:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>
Nota: Resharper 7 señaló que tuve que hacer referencia al ensamblaje en sí.
¿Duplicado? http://stackoverflow.com/questions/338056/wpf-resource-dictionary-in-a-separate-assembly –