É possível compartilhar um arquivo de recursos de recursos entre vários projetos?
-
09-09-2019 - |
Pergunta
Se eu tiver um recurso em um projeto, é possível criar outro projeto que use recursos definidos no primeiro projeto? Observe que ambos os projetos são aplicativos WPF, não de bibliotecas.
Obrigado!!
Solução
Sim, é claro que isso é possível, desde que o Projeto B tenha uma referência ao Projeto A.
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Project A;component/YourSubFolder/YourResourceFile.xaml" />
</ResourceDictionary.MergedDictionaries>
Em seguida, você pode usar os recursos definidos no seu ressecamento.xaml.
Outras dicas
Descobri que tinha que fazer referência à própria montagem e não usar um nome de projeto. Eu também não precisei usar o pacote: /// sintaxe para fazer isso funcionar.
Esta resposta na pergunta duplicada especifica o formato a ser usado (posso verificar se esta sintaxe funciona no .NET 4.0):https://stackoverflow.com/a/10216253/1260563
Especificamente (já que sempre esqueço a parte do componente pensando que é uma pasta que alguém está usando):
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>
Portanto, se você tiver uma montagem abc.def.dll e um arquivo nessa DLL chamado xyz.xaml no nível raiz que você usaria:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>
Nota: Resharper 7 apontou que eu tinha que fazer referência à própria montagem.