O WPF UserControl não pode encontrar o recurso XAML no projeto de referência
No meu projeto WPF, mantenho um controle de usuário em um projeto de biblioteca separado. O controle de usuário acessa recursos em um arquivo XAML separado, assim:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/ViewResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Local styles here -->
</ResourceDictionary>
</UserControl.Resources>
O arquivo de recurso, ViewResources.xaml, reside em uma pasta no projeto da biblioteca de controle chamado Recursos. Possui a ação de compilação padrão (Página) e a ferramenta personalizada (MSBuild: Compile).
O problema é quando faço referência à biblioteca de controle no meu aplicativo WPF e uso o controle de usuário. Em tempo de execução, recebo o seguinte XamlParseException:
Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
... que envolve a IOException:
Cannot locate resource 'resources/viewresources.xaml'.
Como posso consertar isso? Tentei alterar a ação de compilação do arquivo de recurso para "conteúdo" e copiá-la para o diretório de saída (que funciona para arquivos e recursos "burros" semelhantes). Mas sem sucesso. Além disso, ele não funciona como propriedade no controle do usuário.
Existe uma maneira melhor de especificar o caminho?
Terei que mover o arquivo de recurso para o projeto de aplicativo (prefiro não, pois pertence ao domínio do controle do usuário).