私は、以下の非標準の設定(VS2008、.NET 3.5 SP1)を持っている:トリッキーASP.NET Webフォームのリソースに問題とローカリゼーション
MainSiteと呼ばれるメインのWebプロジェクトがあると、「プラグイン」のいくつかがあります。異なる名前のWebプロジェクト。
これらのプラグインをビルドするときは、aspnet_compiler.exe
とaspnet_merge.exe
を呼び出すカスタムビルドステップがあります。これにより、2つの.DLLファイルが生成されます。プラグイン名 .dllおよびプラグイン名 _deploy.dll。最初のコードにはコードビハインドクラスが含まれ、2つ目には.ascxファイルから生成されたコードが含まれます。
これらのプラグイン.DLLは/MainSite/bin/Plugins/
フォルダにコピーされます。実行時(アプリケーションの起動時)に、MainSiteアプリケーションはこのフォルダを検索し、そこですべての.DLLファイルを動的にロードします。
すべてのフォームは、プラグイン、.ascxファイル内にあります。主なアプリケーションは、必要に応じてこれらの.ascxユーザーコントロールを読み込むスケルトンです。
ローカライゼーションが必要になりました。理想的には私は次のことを持っているしたいと思います:
- のVisual Studioのリソースを作成するとき、人々はでフォームをローカライズすることがより簡単になるように、すべてのフォーム(た.ascxファイル)のための個別のリソースファイルがあるはずです平行。
- .ascxファイルのnice
meta:resourcekey
メソッドは、コントロールのローカライズに非常に便利です。 - .NETの自動リソース言語/カルチャのフォールバックメカニズムを使用する必要があります。
- コンパイル結果は、すべてのプラグインのファイルを
/MainSite/bin/Plugins/
フォルダにコピーできるようにする必要があります。すべての言語/文化に対応する.DLLファイルがあり、特定のサブフォルダに格納されている場合は、別のプラグインの.DLLに衝突する名前がない限り問題ありません。
どのようにこれを達成するためのアイデアですか?