Ist es möglich, eine Ressourcen -Datei zwischen mehreren Projekten zu teilen?
-
09-09-2019 - |
Frage
Wenn ich ein Ressourcenschutz in einem Projekt habe, ist es möglich, ein anderes Projekt zu erstellen, das Ressourcen verwendet, die im ersten Projekt definiert sind? Beachten Sie, dass beide Projekte WPF -Anwendungen sind, keine Kontrollibraren.
Vielen Dank!!
Lösung
Ja, das ist natürlich möglich, solange Projekt B einen Hinweis auf Projekt A hat.
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Project A;component/YourSubFolder/YourResourceFile.xaml" />
</ResourceDictionary.MergedDictionaries>
Dann können Sie einfach die in YourResourceFile.xaml definierten Ressourcen verwenden.
Andere Tipps
Ich stellte fest, dass ich mich auf die Montage selbst verweisen musste und keinen Projektnamen verwenden musste. Ich musste auch das Pack: /// Syntax nicht verwenden, um dies zu funktionieren.
Diese Antwort auf der doppelten Frage gibt das zu verwendende Format an (ich kann überprüfen, ob diese Syntax in .NET 4.0 funktioniert):https://stackoverflow.com/a/10216253/1260563
Speziell (da ich immer den Komponententeil vergesse, der denke, es handelt sich um einen Ordner, den jemand verwendet):
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>
Wenn Sie also über eine Assembly ABC.def.dll und eine Datei in dieser DLL bezeichnet werden, namens xyz.xaml auf der Stammebene, die Sie verwenden würden:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>
Hinweis: Resharper 7 wies darauf hin, dass ich die Baugruppe selbst verweisen musste.