Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VisualStudio2010资源(WPF)_Wpf_Visual Studio 2010_Resources_Manifest_Embedded Resource - Fatal编程技术网

VisualStudio2010资源(WPF)

VisualStudio2010资源(WPF),wpf,visual-studio-2010,resources,manifest,embedded-resource,Wpf,Visual Studio 2010,Resources,Manifest,Embedded Resource,我在visual studio中,有一个类文件:Foo.cs。。。我创建了一个名为Foo.resx的资源resx文件,因为我还计划创建一个Foo.es-SP.resx VisualStudio很好地隐藏了资源文件,就像它为xaml页面隐藏代码一样 问题是应用程序无法编译,因为资源生成器创建了一个Foo.Designer.cs设计器类,该类具有资源的内部Foo类,该类与我的Foo类同名: Foo.cs Foo.Designer.cs 这很烦人,因为我的应用程序现在无法编译。所以,我想我应该在这里欺

我在visual studio中,有一个类文件:Foo.cs。。。我创建了一个名为Foo.resx的资源resx文件,因为我还计划创建一个Foo.es-SP.resx

VisualStudio很好地隐藏了资源文件,就像它为xaml页面隐藏代码一样

问题是应用程序无法编译,因为资源生成器创建了一个Foo.Designer.cs设计器类,该类具有资源的内部Foo类,该类与我的Foo类同名:

Foo.cs

Foo.Designer.cs

这很烦人,因为我的应用程序现在无法编译。所以,我想我应该在这里欺骗VisualStudio并重命名文件而不是类本身。我现在有FooC.cs、FooC.resx和FooC.Designer.cs。这将resx类更改为内部类FooC{…}

它可以编译,但在我试图获取资源时运行应用程序时不会崩溃

为什么VisualStudio创建的内部类与我现有的类冲突?很明显,为类创建资源应该具有相同的名称,因为它为您组织资源

为什么在尝试使用标记为嵌入式资源的资源时会出现运行时错误

错误消息:

System.Resources.MissingManifestResourceException: 找不到任何资源 适合于指定的区域性 或者是中立文化。确保 MyProj.FooC.resources正确 嵌入或链接到组件中 在编译时使用MyProj,或者诸如此类 所需的附属组件是 可加载且完全签名。在 System.Resources.ManifestBasedResourceGroveler.HandlerResourceStreamMissingString 文件名


在解决方案资源管理器中选择Foo.es-SP.resx,显示其属性F4,然后清除自定义工具属性

将Foo.resx的名称更改为,例如FooResources.resx。

我甚至还没有访问Foo.es-SP.resx。我还在努力让Foo.resx正常工作……你到底想要什么?您是否计划使用生成的类?如果没有,请清除Foo.resx的自定义工具,它将不会生成classI,我希望能够使用我在资源文件中键入的字符串资源。我把Title作为我的一个资源字符串,但是如果我不断地得到这些错误,我如何在我的类中实际使用它呢。理想情况下,我希望我的资源只在我的程序集内部,但也不会给我这些命名冲突,如果我没有将资源文件命名为与类文件相同的名称,那么VS不会很好地组织它。我可以添加一个foooresources.resx并在中引用它,但是Foo.resx更好。是的,这解决了拥有两个Foo类的问题,但是我仍然有另一个问题。此外,这使得资源只是坐在那里,而不是由Visual Studio组织。根据我自己的经验,我不会建议您偏离microsoft设计的模式太多-您稍后将尝试与该模式抗争,并可能赢得胜利。我通常在项目中的不同文件夹中创建资源文件。默认情况下,这会将它们放在不同的名称空间中,因此我从来没有遇到过您所指的问题。好吧,问题是,看起来微软似乎希望能够以我希望的方式处理它。否则为什么VisualStudio会自动将资源折叠到cs文件中,就像它对表单和代码的处理一样?
public class Foo { ... }
internal class Foo { ... }