2012-07-18 3 views
8

Dies ist meine erste Frage hier!Bearbeiten Sie ASP.NET MVC 3 Resx-Dateien in Deployment Server ohne Neukompilierung

Ich habe ein ASP.NET MVC 3 Projekt mit einem Eigenschaftenordner, der einige .resx Dateien enthält, die verwendet werden, um den Inhalt meiner Ansichten nach Sprache (en/es) zu unterscheiden. Ich arbeite in VS2010 mit. NET 4.

Wenn ich die Anwendung auf den Server bereitstellen, finde ich, dass keine Resx-Dateien veröffentlicht werden, und stattdessen habe ich einige DLL-Dateien.

Ich habe die Build-Aktion auf Embedded resource, Do not copy auf Ausgabeverzeichnis und PublicResXFileCodeGenerator als Custom Tool in RESX-Dateien Eigenschaften festgelegt.

Ich möchte RESX-Dateien auf dem Server haben und in der Lage sein, sie zu bearbeiten, ohne neu zu kompilieren oder neu bereitzustellen. Die Ansichten sollten diese Änderungen verwenden.

Wie kann ich das tun?

Danke für Ihre Hilfe !!

+1

Ich hatte Resx-Dateien in den Eigenschaftenordner. Vielleicht lassen Sie mich das aus dem Ordner App_GlobalResources verwenden? – Jawen

+1

Ich habe diese Lösung ausprobiert und funktioniert! – Jawen

+0

PublicResXFileCodeGenerator scheint ein Wrapper für http://msdn.microsoft.com/en-us/library/system.resources.tools.stronglytypedresourcebuilder.aspx zu sein, der resx in Klassen (dlls) konvertiert. Ist es notwendig für das, was du tust? –

Antwort

3

Setzen Sie die resx Dateien in Ihrem App_GlobalResources und die Änderung auf false "Build-Aktion" zu Inhalt und "To Ausgabeverzeichnis kopieren". Machen Sie das „Custom Tool“ sicher gesetzt GlobalResourceProxyGenerator

Das sollte sie veränderbar auch zur Laufzeit machen.

Sie können Xpath einfach verwenden, um über sie abzufragen, nehmen Sie die Schlüssel, Werte und Kommentare und bearbeiten Sie sie wie gewünscht mit einem XDocument.

Sie sollten auch wissen, dass so etwas nicht mit der Veröffentlichung von Visual Studio funktioniert, da App_GlobalResources mit vorkompilierter Website nicht erlaubt ist.

+0

Danke Adam. Als ich diese Lösung gefunden habe, habe ich versucht und funktioniert gut! – Jawen

+0

@Adam Tal, Ich habe die obigen Schritte gefolgt, es ist worlking, aber alle Sitzungen sind gelöscht/App-Pool wird nach der Bearbeitung der Zeichenfolge Ressource zur Laufzeit recycelt. Wie haben Sie das behauptet? – Pawan

+0

@Pawan - Der Anwendungspool wird recycelt, sobald er eine Änderung in App_GlobalResources feststellt - Sie sollten das ResX nicht viel bearbeiten! Wenn Sie solch eine Notwendigkeit haben, können Sie eine Datenbank-basierte Lösung –