ResourceSet不在子文件夹的子文件夹中加载项目

时间:2011-07-26 23:02:27

标签: c# wpf resources

我使用典型代码加载程序集并检索其资源。它找到顶级子文件夹中的所有资源(例如,“组件/图像”),但如果我将图像等资源放入那些资源的子文件夹(例如,component / Images / MenuIcons),那么这些资源都不会进入我已经检查了application.g.resources文件,他们在那里。我已经尝试了两种扫描资源的方法:

System.Globalization.CultureInfo culture = Thread.CurrentThread.CurrentCulture;
string resourceName = asm.GetName().Name + ".g";
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(resourceName, asm);
System.Resources.ResourceSet resourceSet = rm.GetResourceSet(culture, true, true);
List<string> resources = new List<string>();
foreach (DictionaryEntry resource in resourceSet)
    resources.Add((string)resource.Key);
rm.ReleaseAllResources();
return resources;

还有:

foreach (string name in assembly.GetManifestResourceNames())
{
    using (Stream stream = assembly.GetManifestResourceStream(name))
    {
            using (IResourceReader reader = new ResourceReader(stream))
            {
                foreach (DictionaryEntry entry in reader)
                {
                     // Add resource here
                }
            }
        }
    }
}

两种方法都会产生相同的结果,但两种方法都不包含子文件夹子文件夹中的任何资源。有谁知道如何获得这些列表?当使用pack:URIs引用它们时工作得很好。

1 个答案:

答案 0 :(得分:0)

也许你的资源没有被复制到Build上的bin目录?检查这些文件的构建操作和复制到输出目录属性。