我想将App_GlobalResources / Strings.resx编译到我的程序集中(最终使用Strings.es.resx,Strings.fr.resx等的卫星程序集),但发布应用程序后会出现以下错误:
“Could not load file or assembly ‘App_GlobalResources’ or one of its dependencies. The system cannot find the file specified.”
重现步骤:
>创建一个新的ASP.NET MVC项目.
>添加一个App_GlobalResources文件夹和一个Strings.resx文件.
>将文件的构建动作设置为“嵌入资源”
>将字符串添加到Strings.resx,并在HomeController.Index()中使用它. ViewData [“Message”] = Strings.MyTest
> F5进行调试,工作正常.
>发布到IIS和(因为Strings.resx被排除在发布之外),您将在发布的网站中收到上述错误.
ASP.NET MVC项目可以使用字符串资源编译成dll,如果是,我做错了什么?
那么为什么ResourceManager没有找到它们?默认情况下不是fallback to the main assembly吗?
解决方法
这是一个很好的起点
http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx
我设置一个项目,就像你提到的,当我部署到IIS6时,它的错误也是一样的.根据Scott的建议,将自定义工具更改为PublicResXFileCodeGenerator和自定义工具命名空间资源.
我也会遵循斯科特的领先地位,以消除App_GlobalResources,但我得到它的工作正常.这可能是个人偏好的问题.