.net 核心中的 MissingManifestResourceException

Posted

技术标签:

【中文标题】.net 核心中的 MissingManifestResourceException【英文标题】:MissingManifestResourceException in .net core 【发布时间】:2017-08-05 10:21:21 【问题描述】:

我想从 .net 核心类库中的资源文件中读取本地化值,但出现异常。我将我的类库添加到 .net core wep api 项目中。 这些是我的资源文件“Resource.de.resx”、“Resource.en.resx”、“Resource.tr.resx”,它们位于我的类库项目的根文件夹中。 web api 项目中没有资源文件。当我构建我的类库时,创建了三个文件夹(de、en、tr),在这些文件夹中有一个名为 'XXX.Model.Core.resources.dll' 的 dll。

System.Private.CoreLib.ni.dll 中出现“System.Resources.MissingManifestResourceException”类型的异常,但未在用户代码中处理 附加信息:找不到任何适合指定文化或中性文化的资源。 确保“Resource.resources”在编译时被正确嵌入或链接到程序集“类库”中,或者所有需要的附属程序集都是可加载的并且是完全签名的。

这是我的类库 project.json 文件:

  
"version": "1.0.0-*",
  "dependencies": 
    "Microsoft.EntityFrameworkCore": "1.1.0",
    "Microsoft.EntityFrameworkCore.DynamicLinq": "1.0.3.3",
    "NETStandard.Library": "1.6.1",
    "System.ComponentModel.Annotations": "4.3.0",
    "System.ComponentModel.Primitives": "4.3.0",
    "System.Reflection.Extensions": "4.3.0",
    "System.Resources.Reader": "4.3.0"
  ,
  "frameworks": 
    "netstandard1.6": 
      "imports": "dnxcore50"
    
  ,
 **"buildOptions": 
    "embed":
  "include": [ "Resource.de.resx", "Resource.en.resx", "Resource.tr.resx" ]**

这是我尝试访问资源的课程:

 var resourceManager = new ResourceManager("Resource", typeof(LanguageSupportedException).GetTypeInfo().Assembly);

resourceManager.GetString("xx");

我该如何解决?

【问题讨论】:

我想你应该可以像<yourlibrary.namespace.Resources.xx一样直接阅读资源。此外,您应该有一个名为 Resources.resx 的默认 resx 【参考方案1】:

我还在 XAML 中遇到了此消息,与 WPFLocalizationExtension 结合使用。 我有这段 XAML 代码:

<Label 
    Content="lex:Loc WindspeedArea" 
    ToolTip="lex:Loc TipResources:TT_WindSpeed"/>

WindspeedArea 在 Resources.resx 中。

TT_WindSpeed 在 TipResources.resx 中。

然后我想到了将 Resources.resx 中的所有字符串组合起来。

忘记从所有 XAML 文件中删除所有“TipResource:”前缀。

因此得到异常。很多次。

【讨论】:

以上是关于.net 核心中的 MissingManifestResourceException的主要内容,如果未能解决你的问题,请参考以下文章

asp.net核心中的TempData为空

如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?

asp.net 核心中的红隼

如何从 DBContext(实体框架核心)中的 App.config(不是 .net 核心应用程序)读取值

asp.net 核心中的 jwt 令牌无效

ASP.NET 核心中的 Request.CreateResponse