从MVC控制器(带视图的工作文件)访问资源文件字符串时出错
Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "TempNameSpace.App_GlobalResources.Resource_EN_US.resources" was correctly embedded or linked into assembly "TempNameSpace" at compile time, or that all the satellite assemblies required are loadable and fully signed.
我已经做了什么
1.资源文件构建操作:从内容到嵌入式资源
结果:发布中不包含资源文件
2.添加名为Resource.resx的新资源文件
结果:同样的错误
解决方案层次结构
1.解决方案包含4个项目,其中两个包含资源文件(App.GlobalResources文件夹下的Resource.resx和Resource_EN_US)
2. Resource_EN_US的Designer包含正确的命名空间
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TempNameSpace.App_GlobalResources.Resource_EN_US", typeof(Resource_EN_US).Assembly);
答案 0 :(得分:0)
在我的项目中,我使用单独的项目来获取资源。我已将所有资源文件构建操作属性设置为嵌入式资源。 在对资源项目的引用中,我将资源项目的复制本地设置为True。 (右键单击参考并选择属性)
如果您的Web项目中包含资源文件,我认为与复制本地对应的属性应为复制到输出目录(也可通过右键单击和< EM>属性的)。
修改强> 我在您的评论中看到您说您以 Resource.Resource_EN_US.WaterMarkEmail 的形式访问该文件,但这不是访问文件的正确方法。您应该将它们作为单个文件访问:资源。属性。 我的文件命名为: Standard.resx , Standard.en.resx , Standard.no.resx 等等。要访问它们,我可以使用标准。属性 。资源文件将会变形,但前提是你给它们有效的名字。如果您可以单独访问所有资源文件,那么您没有使用正确的命名约定。
我建议使用ResourceManager实现一个ResourceHelper来访问您需要的属性。