如何使用ResX资源发布/部署MVC项目?

时间:2010-08-20 20:29:52

标签: asp.net-mvc deployment localization resx

我编写了一个非常简单的MVC应用程序,它只显示一个Resource文件中的单个字符串。它在我的本地机器上工作得很好但是当我将项目部署到Web服务器时,我得到了错误。

  

CS0103:“资源”这个名称没有   存在于当前背景中

您只需10步即可轻松复制我正在做的事情!

  1. 创建新的MVC 2 Web应用程序。
    (File-> New-> Project-> ASP.NET MVC 2 Web应用程序,对单元测试项目说不)

  2. 添加“App_GlobalResources”文件夹。
    (右键单击项目并选择添加 - >添加ASP.NET文件夹 - > App_GlobalResources)

    < / LI>
  3. 将资源文件添加到此文件夹。
    (右键单击文件夹,然后选择添加 - >新项目...-&gt;资源文件。将其命名为字符串的.resx)

  4. 将单个字符串添加到资源表。
    (名称=“HelloWorld”,值=“我本地化的Hello World!”)

  5. 设置资源文件的文件属性。
    (单击文件Strings.resx并在属性窗口中设置Build Action =“Embedded Resource”和CustomTool = “PublicResXFileCodeGenerator”)

  6. 添加新控制器
    (右键单击Controllers文件夹,然后选择添加 - >控制器...将其命名为HelloWorldController.cs)

  7. 添加视图
    (将光标放在HelloWorldController.cs的Index方法中按CTRL-MV。使用默认值,包括View name =“Index” )

  8. 修改视图,使其显示资源文件中的字符串。

    替换MainContent占位符的内容
    <h2><%: Resources.Strings.HelloWorld %></h2>
    
  9. 在本地运行以测试它是否有效。它应该是什么。

  10. 将其发布到网络服务器并访问网址“http://localhost/HelloWorld

  11. 这是我在顶部描述的错误。

    我认为我在ResX文件上设置的设置不正确,资源未发布到服务器。

    非常感谢帮助。

    谢谢!

1 个答案:

答案 0 :(得分:15)

啊哈哈!弄清楚了。在本文的大部分内容中:
http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

听起来App_GlobalResources文件夹与MVC没有合作。所以我将我的ResX文件移动到一个新文件夹
〜/ Resources / Strings /Strings.resx

这与设置文件属性的1个小改动一起 自定义工具命名空间 =资源

并解决了问题!