我有以下非标准设置(VS2008,.NET 3.5 SP1):
有一个名为 MainSite 的主 Web 项目,并且有几个具有不同名称的“插件”Web 项目。
在构建这些插件时,我有一个自定义构建步骤,它调用aspnet_compiler.exe
和aspnet_merge.exe
. 这会产生两个 .DLL 文件 - plugin_name .dll 和plugin_name _deploy.dll。第一个包含代码隐藏类,第二个包含从 .ascx 文件生成的代码。
然后将这些插件 .DLL 复制到/MainSite/bin/Plugins/
文件夹中。在运行时(应用程序启动),MainSite 应用程序在此文件夹中查找并动态加载那里的所有 .DLL 文件。
我所有的表单都在插件中,在 .ascx 文件中。主应用程序只是一个框架,它根据需要加载这些 .ascx 用户控件。
现在需要本地化。理想情况下,我希望拥有以下内容:
- 在 Visual Studio 中制作资源时,每个表单都应该有一个单独的资源文件(.ascx 文件),以便人们更容易并行本地化表单。
- .ascx 文件中的 nice
meta:resourcekey
方法非常适合本地化控件; - .NET 中的自动资源语言/文化回退机制应该可用;
- 编译的结果应该是所有插件的文件都可以复制到
/MainSite/bin/Plugins/
文件夹中。如果每种语言/文化都有一个 .DLL 文件,并且它们必须放在一些特定的子文件夹中 - 只要来自不同插件的 .DLL 没有冲突的名称,那就没问题了。
关于如何实现这一目标的任何想法?