我创建了一个类来管理从ComponentResourceManager
动态派生的资源:
public class MyResourceManager : ComponentResourceManager
{
public MyResourceManager(Type _t, Langue _lang) : base(_t)
{
if (_lang == Langue.French)
{
MainAssembly = Assembly.LoadFile("c:/myCustomFolder/french.dll");
}
else
{
MainAssembly = Assembly.LoadFile("c:/myCustomFolder/english.dll");
}
}
}
当我尝试将资源应用于我的控件时,会引发异常
public static void UpdateLanguage(Control c, Langue _lang)
{
MyResourceManager language = new MyResourceManager(c.GetType(), _lang);
language.ApplyResources(c, c.Name);
}
引发异常:(调用ApplyResources时)
未处理的类型异常 发生'System.Resources.MissingManifestResourceException' mscorlib.dll中
其他信息:找不到适合指定文化或中性文化的资源。确保在编译时将“MyAppName.MyFormName.resources”正确嵌入或链接到程序集“MyAppName.resources”中,或者所有所需的附属程序集都是可加载和完全签名的。
你有什么想法吗?
答案 0 :(得分:0)
最常见的原因是您在创建Resourse文件后更改了命名空间名称,或者资源文件的Build Action未设置为Embedded Resource。