首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET全球资源问题

ASP.NET全球资源问题
EN

Stack Overflow用户
提问于 2015-01-19 21:15:28
回答 1查看 1.8K关注 0票数 0

我有个问题已经花了几个晚上的时间来解决。我将一个Web项目迁移到了一个ASP.NET应用程序。

我的主要问题是.resx文件在App_GlobalResources下面。假设我有MyStrings.resx (=默认的区域性)和MyStrings.en.resx (是的,英语不是我的默认语言)。

如果我用“Add.”在解决方案资源管理器中创建解决方案中的文件,我将获得以下设置:* Build : Content * Custom : GlobalResourceProxyGenerator

我猜想默认设置在大多数情况下都是可以的,但我已经有两个问题: a)如果我将Build作为"Content",那么在代码中使用MissingManifestResourceException时,我将得到一个ResourceManager.GetString。解决方案:将其改为"EmbeddedResource“。GlobalResourceProxyGenerator似乎在我的电脑上不见了。如果我在.resx上选择“运行自定义工具”,我会得到错误消息“无法找到这个系统上的自定义工具‘.’。很好。解决方案:将它更改为"PublicResXFileCodeGenerator”。这是有效的。

现在,如果我把设置放在PublicResXFileCodeGenerator上,一切都会编译,但是当我运行解决方案(IIS和VS 2013 for Web)时,我得到了友好的消息,即我在MyWebSite.dll和App_GlobalResources.dll中都得到了"Resources.MyStrings“。

好的,我将自定义工具更改为"ResXFileCodeGenerator“。现在一切都很好。我现在正在将解决方案部署到the服务器上。在这里我得到了CS0122:由于Resources.MyStrings的保护级别,它是不可访问的。这可能是因为它是“内部”声明。

现在我完全迷路了。有什么能帮上忙的吗?

环境: IIS本地和在线VS Express,2013年,用于Web两种语言。对于这两个设置都是: Build::不要复制自定义工具: ResXfileCodeGenerator自定义工具名称空间:资源

对于生成的设计器文件(仅默认语言),设置如下:生成操作:将复制编译到输出目录:不复制

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-24 21:52:51

我没有真正找到我的麻烦的根源,但我找到了一个很好的解决办法。核心问题可能是Resources.MyStrings类既存在于MyWebsite.dll中,也存在于App_GlobalResoures.dll中。我没有找出设置的目的是什么,以确保您只得到它一次。

我的解决方案是:创建一个“参考资料”文件夹,将所有.resx文件复制到上面并删除App_GlobalResources。在不同的语言中工作也很棒。

为什么有一个"App_Globalresources“文件夹呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28033589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档