2012-07-18 28 views
8

これは私の最初の質問です!再コンパイルせずにデプロイメントサーバでASP.NET MVC 3 resxファイルを編集

私は1つのASP.NET MVC 3プロジェクトにプロパティフォルダを持ち、いくつかの.resxファイルを含み、言語(en/es)で自分のビューのコンテンツを相違させています。 私はVS2010で.Net 4で作業しています。

アプリケーションをサーバーにデプロイすると、resxファイルが公開されていないことがわかりました。その代わりに、いくつかの.dllファイルがあります。

ビルドアクションを,Do not copy出力ディレクトリ、PublicResXFileCodeGeneratorカスタムツールとして.resxファイルプロパティに設定しました。

サーバ上に.resxファイルがあり、再コンパイルや再デプロイメントをせずにそれらを編集できるようにします。ビューはこれらの変更を使用する必要があります。

どうすればいいですか?

ありがとうございます!

+1

私はresxファイルをPropertiesフォルダに持っていました。たぶん、App_GlobalResourcesフォルダからそれらを使用すると私はそれをさせるでしょうか? – Jawen

+1

私はその解決策を試してみました。 – Jawen

+0

PublicResXFileCodeGeneratorは、resxをクラス(dll)に変換するhttp://msdn.microsoft.com/en-us/library/system.resources.tools.stronglytypedresourcebuilder.aspxのラッパーのようです。あなたは何をしているのか必要ですか? –

答えて

3

あなたApp_GlobalResourcesでRESXファイルを入れて、falseに「出力ディレクトリにコピー」コンテンツとし、「ビルド・アクション」に変更します。 は、「カスタムツールが、」でも、実行時には変更すべきであるGlobalResourceProxyGenerator

に設定されていることを確認します。

xpathを使用してそれらを照会し、キー、値、およびコメントを取得し、XDocumentを使用して希望通りに編集することができます。

また、App_GlobalResourcesはプリコンパイル済みのWebサイトでは許可されていないため、このようなことはVisual Studioの公開では機能しません。

+0

アダムに感謝します。その解決策を見つけたら、私はうまくやってみました! – Jawen

+0

@Adam Tal、上記の手順を実行しましたが、それは問題ありませんが、すべてのセッションはクリアされています/アプリケーションプールは実行時に文字列リソースを編集した後にリサイクルされます。どのようにそれを維持しましたか? – Pawan

+0

@Pawan - App_GlobalResourcesの変更を検出すると、アプリケーションプールはリサイクルされます.resxをたくさん編集しないでください!そのような必要がある場合は、データベースベースの解決策を考えてみてください。 –

関連する問題