0

我创建了一个类来管理动态派生的资源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 时)

mscorlib.dll 中出现“System.Resources.MissingManifestResourceException”类型的未处理异常

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

你有想法吗 ?

4

1 回答 1

0

最常见的原因是您在创建资源文件后更改了命名空间名称,或者资源文件的构建操作未设置为嵌入式资源。

于 2013-03-01T08:12:46.987 回答