Я обнаружил, что должен ссылаться на саму сборку и не использовать имя проекта. Мне также не нужно было использовать синтаксис pack: ///, чтобы заставить это работать.
Этот ответ на повторяющийся вопрос указывает используемый формат (я могу убедиться, что этот синтаксис работает в .NET 4.0):
https://stackoverflow.com/a/10216253/1260563
В частности (поскольку я всегда забываю, что составная часть думает, что это папка, которую кто-то использует):
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>
Итак, если у вас есть сборка Abc.Def.dll и файл в этой DLL с именем Xyz.xaml на корневом уровне, вы должны использовать:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>
Примечание: Resharper 7 указал, что я должен ссылаться на саму сборку.