ich folgenden Nicht-Standard-Setup habe (VS2008, .NET 3.5 SP1):Tricky Problem mit ASP.NET Web-Formularen Ressourcen und Lokalisierung
Es gibt ein Haupt Webprojekt namens Mainsite und es gibt mehr „Plugin“ Webprojekte mit verschiedenen Namen.
Beim Erstellen dieser Plugins habe ich einen benutzerdefinierten Build-Schritt, der aspnet_compiler.exe
und aspnet_merge.exe
aufruft. Dies führt zu zwei .DLL-Dateien - plugin_name .dll und plugin_name _deploy.dll. Die erste enthält die Codebehind-Klassen, die zweite enthält Code, der aus .ascx-Dateien generiert wird.
Diese Plugin-DLLs werden dann in den Ordner /MainSite/bin/Plugins/
kopiert. Zur Laufzeit (Anwendungsstart) sucht die MainSite-Anwendung in diesem Ordner und lädt dort dynamisch alle .DLL-Dateien.
Alle meine Formulare sind in den Plugins, in. ASCX-Dateien. Die Hauptanwendung ist nur ein Skelett, das diese ASCX-Benutzersteuerelemente nach Bedarf lädt.
Und jetzt kommt die Notwendigkeit für die Lokalisierung. Im Idealfall würde Ich mag folgendes hat:
- Wenn die Ressourcen in Visual Studio zu machen, soll es eine separate Ressource-Datei für jede Form (ASCX-Datei) sein, so dass es einfacher ist, für Menschen, die Formen zu lokalisieren in parallel.
- Die nette Methode in .ascx-Dateien ist sehr komfortabel für die Lokalisierung von Steuerelementen;
- Die automatische Ressource Sprache/Kultur Fallback-Mechanismus in. NET sollte nutzbar sein;
- Das Ergebnis der Kompilierung sollte so sein, dass die Dateien von allen Plugins in den Ordner
/MainSite/bin/Plugins/
kopiert werden können. Wenn es für jede Sprache/Kultur eine .DLL-Datei gibt und sie in bestimmte Unterordner eingefügt werden muss, ist das in Ordnung, solange die .DLLs verschiedener Plugins keine kollidierenden Namen haben.
Irgendwelche Ideen, wie man das erreicht?