我刚刚在使用Resx资源文件时遇到了Visual Studio 2010中最奇怪的行为,但我无法将其包裹在它的周围。如果文件已经本地化,Visual Studio 2010不会生成资源(Resx)设计器代码
的问题如下:Visual Studio将不会产生designer.cs
文件具有本地化的名称(如resource.fr.resx
)的资源文件,但它用简单的名称(如resource.resx
)等文件的正常工作。
这里是我的Visual Studio项目设置的快照:
正如你可以看到我只是做了3个资源文件进行简单的测试:
- test.resx
- test2.resx
- test.fr.resx
为test.resx
和test2.resx
的designer.cs
文件生成就好了。但是,无论我做什么,test.fr.designer.cs
都会创建但始终为空。
我有双重检查和三重检查:正确设置了本地化文件的自定义工具属性。所有属性在所有文件中都完全相同(我使用的是PublicResxFileCodeGenerator
,但如果将访问修饰符设置为internal并使用ResxFileCodeGenerator
,我会得到相同的行为)。
注:我注意到,当创建的资源文件时,Visual Studio通常默认的访问修饰符为“内部”。但是,创建本地化资源文件(resource.fr.resx
)时,它默认为“无代码生成”。只是发现有趣的事情要注意,因为它证明了Visual Studio因某种原因对待本地化文件的方式不同。
- >有什么我在这里失踪?如果有人对此问题有所了解,我将不胜感激,这让我疯狂。
我想我只是误解了它应该工作的方式。但是,资源管理器没有找到我的本地化字符串,这是我调查这整个事情。但这可能是另一个原因。我将在假设资源文件没有错误的情况下再次进行调查。 – Aerendel 2012-08-17 20:34:07
好吧,按照我描述的方式尝试它,它应该可以工作。 – Larry 2012-08-17 20:36:17
事实上,我不明白该框架只需要生成主资源文件的代码,这导致我在错误的方向。感谢您解释并指出! Visual Studio确实为遵循本地化命名约定的文件生成代码,这确实有意义。在将本地化文件改回“无代码生成”之后,所有工作都已经开始。非常感谢! – Aerendel 2012-08-17 20:46:32