2012-07-18 48 views
8

這是我的第一個問題!在部署服務器中編輯ASP.NET MVC 3 resx文件而無需重新編譯

我有一個ASP.NET MVC 3項目的屬性文件夾,其中包含一些.resx文件,用於通過語言(en/es)在我的視圖中區別內容。 我在VS2010中使用.Net 4工作。

當我將應用程序部署到服務器時,我發現沒有發佈resx文件,而不是它,我有一些.dll文件。

我已經將生成操作設置爲Embedded resource,Do not copy以在.resx文件屬性中輸出目錄和PublicResXFileCodeGenerator作爲自定義工具。

我想在服務器上擁有.resx文件,並且無需重新編譯或重新部署即可編輯它們。意見應該使用這些更改。

我該怎麼做?

感謝您的幫助!

+1

我有resx文件到屬性文件夾。也許從App_GlobalResources文件夾使用它們會讓我這樣做? – Jawen 2012-07-23 15:15:04

+1

我試過這個解決方案並且工作! – Jawen 2012-07-23 16:45:03

+0

PublicResXFileCodeGenerator似乎是http://msdn.microsoft.com/en-us/library/system.resources.tools.stronglytypedresourcebuilder.aspx的包裝器,它將resx轉換爲類(dll)。你在做什麼有必要嗎? – 2012-10-12 07:21:24

回答

3

把RESX文件放在App_GlobalResources文件,改變「建設行動」 內容和「複製到輸出目錄」爲假。 確保將「自定義工具」設置爲GlobalResourceProxyGenerator

即使在運行時也應該使它們可更改。

您可以簡單地使用xpath來查詢它們,獲取鍵,值和註釋,並使用XDocument編輯它們。

您還應該知道,這樣的事情不適用於Visual Studio的發佈,因爲預編譯的網站不允許使用App_GlobalResources。

+0

謝謝Adam。當我找到解決方案時,我嘗試並且工作得很好! – Jawen 2013-05-24 17:15:17

+0

@Adam Tal,我已經回顧上述步驟,它是worlking,但所有會話都被清除/應用程序池在運行時編輯字符串資源後回收。你是如何保持這一點的? – Pawan 2014-08-20 08:41:45

+0

@Pawan - 當應用程序池檢測到App_GlobalResources中的任何更改時,它將會回收 - 您不應該編輯resx!如果你有這樣的需求,你可以考慮一個基於數據庫的解決方案 – 2014-09-17 12:33:25

相關問題