2012-02-23 46 views
0

我在App_GlobalResources中添加了一个名为FileList.resx的资源文件。ASP.NET中的资源(VB)

现在我用

My.Resources.FileList.astro1 etc. 

它工作正常,如果我设置的资源文件的生成操作嵌入式访问代码中的内容。但是在这种情况下,资源文件在编译后不可用,我以后不能更改它。

如果我将生成操作设置为内容,我得到一个错误:找不到适用于指定文化或中性文化的任何资源。确保在编译时“WAP.FileList.resources”已正确嵌入或链接到程序集“WAP”,或者所有需要的附属程序集均可加载并完全签名。

请指教。

回答

0

正在使用Visual Studio的Web应用程序吗?或一个网站?

在后一种情况下,您应该能够在部署站点后更改资源文件,并且应该自动在服务器上重新编译它。在前一种情况下,它是在部署之前编译站点后无法更改的内置功能。

如果这对你来说是个问题,当然还有资源文件的替代方案....

0

以任何方式编译和部署应用程序,所有资源文件都将编译成与每个资源文件程序集相关。在所有情况下,最终都会为站点中的每个目录创建资源程序集,并在其各自的文化特定目录下生成附属程序集。即使该网站是JIT编译的,结果也是相同的。

因此,您必须使用资源文件的Build Action来嵌入,但作为动态资源定义的可能解决方案,您可以将资源置于数据库中。甚至提供资源提供者。在这种情况下,您的数据库解决方案将具有资源管理(动态文化定义,使用资源绑定来控制等)所建议的所有优势。

在这里您可以找到一些教程,了解如何在应用程序中实现资源提供者模型:

  1. Extending the ASP.NET 2.0 Resource-Provider Model
  2. Creating a Data Driven ASP.NET Localization Resource Provider and Editor