Hmm, wenn ich mir die Pipeline in https://smartstore.g...eme-inheritance so anschau, dann würde ich davon ausgehen, dass auch innerhalb der Module nach Themes gesucht werden würde.
Ja, ist nicht der Fall, zumindest in Dev-Umgebungen auf Windows.
Sieht so aus, als ob der SymLink, der in ModuleLoader.cs generiert wird
1. nicht auf das richtige Verzeichnis zeigt
2. nicht aufgelöst wird (File.ResolveLinkTarget wird von EnumerateDirectories anscheinend nicht verwendet)
Das hat zur Folge, dass der Link (der zwar generiert wird) nicht aufgelöst wird und (zumindest unter Windows) das verlinkte Theme-Verzeichnis nicht enumeriert wird.
Für Entwickler sinnvoll:
Macht euch einen mklink /J, dann funktionierts auch mit Themes in Modulen.
Wenn der Link einmal drin ist, dann wird der auch nicht vom ModuleLoader überschrieben.
Für Smartstore:
Der Link an sich sollte natürlich auch auf das richtige Verzeichnis zeigen.
Momentan wird das Modul-Verzeichnis verlinkt, nicht das Theme-Verzeichnis.
Also anstatt
File.CreateSymbolicLink(themeDir.PhysicalPath, descriptor.PhysicalPath);
bitte
File.CreateSymbolicLink(themeDir.PhysicalPath, Path.Combine(descriptor.PhysicalPath, "Themes", descriptor.Theme));
in ModuleLoader.cs verwenden.
Dann klappts zumindest in Linux Umgebungen.
Für die Windows-Umgebungen brauchts etwas mehr Arbeit in den Directory-Enumeratoren, damit die auch SymLinks folgen.
MfG
Chris