我在Visual Studio中,有一个类文件:Foo.cs ...我创建了一个名为Foo.resx AA资源(RESX)文件,因为我也是在具有计划Foo.es-SP.resx。Visual Studio 2010的资源(WPF)
Visual Studio很好地将资源文件隐藏起来,就像它为xaml页面隐藏代码隐藏文件一样。
问题是应用程序无法编译,因为资源生成器创建了一个Foo.Designer.cs(设计器)类,该类具有资源的内部Foo类,它与我的Foo类的类名相同:
Foo.cs
public class Foo { ... }
Foo.Designer.cs
internal class Foo { ... }
这很烦人,因为我的应用程序现在不能编译。所以,我想我会在这里欺骗Visual Studio并重命名文件(而不是类本身)。我现在有FooC.cs和FooC.resx和FooC.Designer.cs。这改变了resx类到internal class FooC { ... }
它编译,但是当我尝试抓取资源时运行应用程序不崩溃。
为什么Visual Studio会创建一个与我现有类相冲突的内部类?很明显,为你创建一个资源类应该有相同的名称,因为它为你组织。
为什么当我尝试使用标记为“Embedded Resource”的资源时出现运行时错误?
错误消息:
System.Resources.MissingManifestResourceException: 找不到适合指定区域性 或区域性的资源 。确保 “MyProj.FooC.resources”是正确 嵌入或链接到装配 “的Myproj”在编译时,或所有 所需的附属程序集 加载并已进行了完全签名。在 System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(字符串 文件名)
我还没有得到Foo.es-SP.resx呢。我仍然试图让Foo.resx正常工作... – michael 2011-04-15 13:53:17
你想要什么?你打算使用生成的类吗?如果没有,请清除Foo.resx的自定义工具,并且它不会生成类 – 2011-04-15 13:57:22
我希望能够使用我输入到资源文件中的字符串资源。我有一个“标题”作为我的资源字符串之一,但是如果我继续收到这些错误,我该如何在课程中真正使用它。理想情况下,我希望我的资源只能在我的程序集内部使用,但也不会给我这些与命名冲突,如果我没有将类资源文件命名为类文件,VS不会很好地组织它。我可以添加一个FooResources.resx并引用它,但Foo.resx更好。 – michael 2011-04-15 14:03:49