In der CAL/Prism befinden sich normalerweise die Module in dem Ordner in dem sich die Rahmenapplikation befindet.
Ich jedoch, habe gerade das Scenario, dass ich die Module dynamisch lade (DirectoryModuleCatalog) und hier einen Ordner angebe, welcher sich Modules nennt und die Module befinden sich in diesem.
Also sieht bei mir die Struktur folgendermaßen aus:
MainApplication Modules ModuleA ModuleB
Nun aber habe ich das Problem, das ich den Pfad nicht mehr zu meinem Modul kenne, wenn ich irgendwelche Resourcen laden möchte. vorher habe ich das so gemacht:
new Uri("pack://application:,,,/ModuleA;Component/Images/myPic.ico")
Wie aber komme ich nun an meinen Module-Ordner?! Es kann Images/myPic.ico nicht gefunden werden... vielleicht wäre es hier auch nützlich zu wissen, in welchem Pfad der sich gerade befindet.
"The following example shows the pack URI for a XAML resource file that is located in the root of the local assembly's project folder." pack://application:,,,/ResourceFile.xaml
bzw.
"The following example shows the pack URI for a XAML resource file that is located in the root folder of a referenced, version-specific assembly's project folder." pack://application:,,,/ReferencedAssembly;v1.0.0.1;component/ResourceFile.xaml
Das funktioniert aber nur mit WPF und nicht mit Silverlight, oder? Zumindest knallts bei mir, wenn ich mit Silverlight das Protokoll pack:// aufrufen will... Außerdem: Muss zwingend eine Referenz zu den Modulen bestehen? Gerade das will ich ja eigentlich vermeiden.
Ich hab nun: pack://application:,,,/ModuleA;component/Images/myPic.ico", UriKind.RelativeOrAbsolute