我使用典型代码加载程序集并检索其资源。它找到顶级子文件夹中的所有资源(例如,“组件/图像”),但如果我将图像等资源放入那些资源的子文件夹(例如,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引用它们时工作得很好。
答案 0 :(得分:0)
也许你的资源没有被复制到Build上的bin目录?检查这些文件的构建操作和复制到输出目录属性。