【问题标题】:How to access Embedded Resource from PCL Targeting ASP.NET CORE & .NET Framework 4.6如何从面向 ASP.NET CORE 和 .NET Framework 4.6 的 PCL 访问嵌入式资源
【发布时间】:2017-08-31 14:22:21
【问题描述】:

我有一个面向 ASP.NET CORE 和 .NET Framework 4.6 的 PCL。

在 PCL 的根目录中,我添加了 PCLResource.txt 并将其标记为 Build Action > Embedded Resource。

发布到 NuGet,从 NuGet 安装到我的消费者 WinForm 应用程序 (4.6.2)

调用PCL.TestMethod() 有效。然而,

string[] asm = Assembly.GetExecutingAssembly().GetManifestResourceNames();

var assembly = GetType().GetTypeInfo().Assembly;
string[] resources = assembly.GetManifestResourceNames();

结果:

  • PCLConsumerApp.Form1.resources
  • PCLConsumerApp.Properties.Resources.resources

Stream stream = assembly.GetManifestResourceStream(string.Format("PCL.PCLResrouce.txt"));

结果为@​​987654330@

使用 dotPeek,我可以在 DLL 中看到 PCLResrouce.txt。

我如何以消费者身份访问嵌入式资源文本文件?

我使用了以下资源:

我意识到我拼错了资源:/但这不是问题。

【问题讨论】:

    标签: dll asp.net-core embedded-resource portable-class-library .net-4.6


    【解决方案1】:

    我的问题是我没有得到 PCL 程序集。

    解决办法:

    var assembly = Assembly.GetAssembly(typeof(StaticPCLClass));
    

    当我需要资源时,我不一定要使用这个类,但这可以让我获得大会。 现在我可以打电话了:

    Stream stream = assembly.GetManifestResourceStream(string.Format("PCL.PCLResrouce.txt"));
    

    使用了来自 here 的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多