ライブラリにリソースファイルをコンパイルの問題
-
21-08-2019 - |
質問
私は複数の言語をサポートするためのリソースファイルを使用してasp.netで構築されたWebアプリケーションを、持っています。私が持っている問題は、私が唯一のVisual Studioで新しい言語ファイルを追加できるということである、と私は新しい言語が含ま持っているアプリケーション全体を再構築する必要があります。ネットを検索した後、私はリソースファイルのコンパイルが.NETコンパイラで行うことができることを発見しました。私は、次のコマンドを使用しました。
resgen.exe / langfile.en.resxをコンパイル
al.exe /out:en\App_GlobalResources.resources.dll /文化:EN / embedresource:LANGFILE .en.resources
ファイルは、Webサイトのフォルダにコピーされますが、それは動作しません。私は、Webページから新しい言語を選択すると、文字列は、デフォルトのリソースファイルからロードされている、意味します。私はVSでのリソースファイルを作成した場合、それは大丈夫動作します。私は2つのdllファイル、VSによって生成された1と自分でコンパイルした1の大きさをチェックし、彼らは同じ大きさを持っていますが、コンパイル済みの1は動作しません。私は多分、私が上記のコマンドでは、いくつかの他のパラメータを使用する必要がありますが、私は本当に知らないことを考えることができます。
すべてのヘルプは本当に感謝されます。
解決
あなたは独自の式ビルダーを書く代わりに、組み込みのリソースのバージョンを使用して、あなたが望むものを達成し、データベースやXMLファイルから情報を引き出すことができます。基本的にはSystem.Web.Compilation.ExpressionBuilderから継承する独自のクラスを記述し、このようにWeb.configファイルに登録します:
<compilation>
<expressionBuilders>
<add expressionPrefix="CustomResources" type="CustomResourcesExpressionBuilder"/>
</expressionBuilders>
</compilation>
、その後、あなたは、通常のリソースのようにそれを参照することができます:
<%$ CustomResources:Section, Key %>