4

我有一个库从外部文件加载资源,如下所示:

ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(stringsFileName, ResourcesDir, null)

现在我想将加载从外部文件更改为嵌入式资源。我已将“.resources”文件附加到项目中,并将其构建操作更改为“嵌入式资源”。加载如下:

   System.Resources.ResourceManager myManager = new
                   System.Resources.ResourceManager(resName,
                   myAssembly); 

这编译得很好。但是,在运行时,应用程序会报告以下错误:

找不到适合指定区域性或中性区域性的任何资源。确保“Strings.3.resources”在编译时被正确嵌入或链接到程序集“TestApp.Resources”中,或者所有所需的附属程序集都是可加载的并且是完全签名的。

无论我通过什么名称都会发生这种情况,所以我的问题是如何为我刚刚嵌入的资源文件找到正确的基本名称?

4

1 回答 1

2

我相信资源名称是完全限定的,所以它是 {assemblyNameSpace}.Strings.3.resources。

您可以使用 dotPeek 之类的反汇编器/反编译器来确认这一点:http: //www.jetbrains.com/decompiler/

于 2011-12-22T15:36:45.657 回答