我在Web应用程序中使用本地化的资源存在问题。我需要在不同的程序集(WebSite,BLL等)中使用它们,所以我决定将它们移动到一个单独的库中。 我正在使用三种不同的构建配置(基于Release的Debug,Release和QA)。当我在本地运行应用程序时,一切都很好(独立于配置)。问题是我在IIS上部署它(本地或外部服务器的情况相同)。在Debug配置中的部署工作正常但在QA或Release I中遇到此异常:
System.Web.HttpUnhandledException(0x80004005):类型异常 抛出'System.Web.HttpUnhandledException'。 ---> System.Resources.MissingManifestResourceException:找不到任何 适合特定文化或中立的资源 文化。确保“MyToolResources.Resources.Emails.Mail.resources” 已正确嵌入或链接到程序集“BusinessLogicLayer”中 编译时间,或所需的所有附属程序集 可加载和完全签名。
我发现了很多关于该问题的主题,但没有一个主题取决于构建/部署配置。
装配体: MyTool - 网站 BusinessLogicLayer - 类库 MyToolResources - 包含资源的类库
我的资源经理:
var assembly = System.Reflection.Assembly.GetCallingAssembly();
mailResourceManager = new ResourceManager("MyToolResources.Resources.Emails.Mail", assembly);
private static ResourceSet GetResourceSet(ResourceManager resourceManager, CultureInfo culture)
{
return resourceManager.GetResourceSet(culture, true, true);
}
将具有资源的程序集正确复制到/ bin目录中 - 在Debug和QA / Release配置中也是如此。
答案 0 :(得分:0)
在比较两种IIS配置后,我终于找到了解决方案。构建部署必须明确地针对x86 (即使对于x64环境),然后它也能正常工作。