Ich habe ein Web-Projekt in VS 2008. Wir haben einige globale Ressourcen-Dateien (*. Resx) im Ordner App_GlobalResources für die Internationalisierung. All dies funktioniert wie ein Zauber auf meiner lokalen IIS-Installation von VS.Globale Ressourcen können nicht nach der Veröffentlichung der Website in VS2008
Aber wenn ich mein Webprojekt auf dem lokalen Dateisystem und/oder einem anderen Server veröffentliche, können alle Ressourcen nicht mehr gefunden werden. Also ich denke, die Vorkompilierung ist irgendwie korrumpierend. Wenn ich das vorkompilierte Web aufruft, bekomme ich einen Fehler, dass das Ressourcenobjekt mit dem Schlüssel xyz nicht gefunden werden kann, obwohl es vorher gefunden werden konnte.
Ich überprüfte mit .NET-Reflektor, wenn das Ressource-Zeug es in die * .dlls geschafft hat. Alle diese Bezeichner sind dort (bin/Web.dll, bin/<Kultur> /Web.resources.dll). Die Kennungen werden wie folgt geladen:
<asp:MenuItem NavigateUrl="~/OrderNew.aspx" Text="<%$ Resources:MyProject, MenuNewOrder %>" Value="NewOrder">
Die Ressourcendateien werden MyProject.resx und MyProject genannt. <Kultur>. Resx wo <Kultur> entspricht die spezifische Kultur (d. H. MyProject.de-DE.resx).
Irgendwelche Ideen, um das zu lösen?
Ich schätze wirklich jede Hilfe.
Dank
Edit:
Wenn ich den App_GlobalResources Ordner manuell an den Ausgang zu kopieren, können die Ressourcen normalerweise geladen werden. Ich frage mich wirklich, worum es bei dieser Vorkompilierung geht.
Ich bin immer noch interessiert, das Problem "den richtigen Weg" zu lösen.
Ihre ist die Lösung, zu der ich schließlich kam - wir scheinen die Compiler-Aktion "embedded resource" zu verwenden, um auf Ressourcen von code-behind zuzugreifen, aber die Dateien selbst in/app_globalresources, um mit <% $ Resources auf sie zuzugreifen: Klasse, ResKey%>. Es scheint, als sollte es einen besseren Weg geben. – Ripside