1

我有以下非标准设置(VS2008,.NET 3.5 SP1):

有一个名为 MainSite 的主 Web 项目,并且有几个具有不同名称的“插件”Web 项目。

在构建这些插件时,我有一个自定义构建步骤,它调用aspnet_compiler.exeaspnet_merge.exe. 这会产生两个 .DLL 文件 - plugin_name .dll 和plugin_name _deploy.dll。第一个包含代码隐藏类,第二个包含从 .ascx 文件生成的代码。

然后将这些插件 .DLL 复制到/MainSite/bin/Plugins/文件夹中。在运行时(应用程序启动),MainSite 应用程序在此文件夹中查找并动态加载那里的所有 .DLL 文件。

我所有的表单都在插件中,在 .ascx 文件中。主应用程序只是一个框架,它根据需要加载这些 .ascx 用户控件。

现在需要本地化。理想情况下,我希望拥有以下内容:

  • 在 Visual Studio 中制作资源时,每个表单都应该有一个单独的资源文件(.ascx 文件),以便人们更容易并行本地化表单。
  • .ascx 文件中的 nicemeta:resourcekey方法非常适合本地化控件;
  • .NET 中的自动资源语言/文化回退机制应该可用;
  • 编译的结果应该是所有插件的文件都可以复制到/MainSite/bin/Plugins/文件夹中。如果每种语言/文化都有一个 .DLL 文件,并且它们必须放在一些特定的子文件夹中 - 只要来自不同插件的 .DLL 没有冲突的名称,那就没问题了。

关于如何实现这一目标的任何想法?

4

1 回答 1

1

显然可以在 .NET 中实现自定义资源提供程序。是一篇文章,其中包含解释整个过程的各种其他文章的链接。实际上,您可以meta:resourcekey从任何您想要的地方获取价值。例如,上面的文章将所有本地化信息存储在数据库中。

于 2009-05-08T08:48:27.380 回答