【发布时间】:2011-06-09 02:37:24
【问题描述】:
我创建了一个程序集,后来重命名了它。
然后我在调用时开始出现运行时错误:
toolsMenuName = resourceManager.GetString(resourceName);
resourceName 变量在运行时为 "enTools"。
找不到任何资源 适用于指定的文化 或中立文化。确保 “Jfc.TFSAddIn.CommandBar.resources” 被正确嵌入或链接到 编译时的程序集“Jfc.TFSAddIn” 时间,或者说所有的卫星 所需的程序集是可加载的,并且 完全签名。
代码:
string resourceName;
ResourceManager resourceManager = new ResourceManager("Jfc.TFSAddIn.CommandBar", Assembly.GetExecutingAssembly());
CultureInfo cultureInfo = new CultureInfo(_applicationObject.LocaleID);
if(cultureInfo.TwoLetterISOLanguageName == "zh")
{
CultureInfo parentCultureInfo = cultureInfo.Parent;
resourceName = String.Concat(parentCultureInfo.Name, "Tools");
}
else
{
resourceName = String.Concat(cultureInfo.TwoLetterISOLanguageName, "Tools");
}
toolsMenuName = resourceManager.GetString(resourceName); // EXCEPTION IS HERE
我可以看到项目中包含的文件 CommandBar.resx,我可以打开它并且可以看到那里的“enTools”字符串。似乎资源未包含在程序集中或资源已包含但 .NET 无法解析名称。
【问题讨论】:
标签: c# .net exception-handling localization resources