我有一个名为Localize.resx的资源文件,其中包含英语字符串。我将其复制并粘贴到相同的文件夹(App_GlobalResources)中,VS创建了一个副本,我将副本重命名为Localize.sl.resx,将原始副本重命名为Localize.en.resx。现在,代码隐藏文件(Localize.en.designer.cs)中的所有内容都消失了。删除设计器文件并选择运行自定义工具将生成一个新的但完全空白的设计器文件。
我仍然在两个resx文件中保留了所有字符串,但是设计器文件已经消失(为空),因此应用程序不会构建。
这是VS2010内部的一个ASP.NET MVC解决方案。
发布于 2010-07-27 21:54:53
这就是ASP.NET documentation对资源文件的描述。
它没有专门讨论动态生成的代码隐藏设计器文件,但如果你仔细阅读粗体文本,它本质上是说你需要没有指定语言的基本文件,并且鉴于此,只有这个文件将包括自动生成的代码是有意义的。
“创建资源文件时,首先创建一个基本.resx文件。对于要支持的每种语言,创建一个具有相同文件名的新文件。但在名称中,包括语言或语言和区域性(区域性名称)。有关区域性名称的列表,请参阅CultureInfo类。例如,您可以创建以下文件:
·WebResources.resx
基本资源文件。这是默认(回退)资源文件。
·WebResources.es.resx
西班牙语的资源文件。
·WebResources.es-mx.resx
一个专门针对西班牙语(墨西哥)的资源文件。
·WebResources.de.resx
德语的资源文件。“
实际上我以前从来没有注意到这一点,但当我去检查我的旧项目时,我发现它们都有基本文件,然后是特定于语言的文件。因此,我只是更正它,以遵循该约定,现在它可以工作了。
发布于 2012-06-05 17:46:12
我也有同样的问题-- Designer.cs文件不存在于某些resx文件中。
修复方法是设置resx文件的属性:
Build Action - Embedded Resource
Custom Tool - PublicResXFileCodeGenerator发布于 2010-07-27 21:08:26
如果我是你,我会:
创建新的resx文件;打开旧文件;在旧文件中按ctrl+a;在新文件中按ctrl+v;保存新文件;删除旧文件;重命名新文件:)
这应该很快就能解决问题。您还可以通过单击show all按钮来检查cs文件是否未从文件中排除
https://stackoverflow.com/questions/3343813
复制相似问题