【问题标题】:Resources in ASP.NET (VB)ASP.NET (VB) 中的资源
【发布时间】:2012-02-23 05:34:18
【问题描述】:

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

现在我使用

访问代码中的内容
My.Resources.FileList.astro1 etc.

如果我将资源文件的 Build Action 设置为 Embedded,它可以正常工作。但是在这种情况下,资源文件在编译后不可用,以后也无法更改。

如果我将构建操作设置为内容,则会收到错误消息:找不到适合指定文化或中性文化的任何资源。确保“WAP.FileList.resources”在编译时被正确嵌入或链接到程序集“WAP”中,或者所有需要的附属程序集都是可加载的并且是完全签名的。

请给我建议。

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    您使用的是 Visual Studio Web 应用程序吗?还是网站?

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

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

    【讨论】:

      【解决方案2】:

      在编译和部署应用程序的任何方式中,所有资源文件都将与每个资源文件程序集相关地编译。在所有情况下,最终都会为站点中的每个目录创建资源程序集,并在其各自的特定区域性目录下生成附属程序集。即使网站是 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        • 2012-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多