【问题标题】:Problem Reading Embedded Resource With ASP.NET Core 3.1 in Console App在控制台应用程序中使用 ASP.NET Core 3.1 读取嵌入式资源时出现问题
【发布时间】:2020-05-24 11:42:54
【问题描述】:

我无法读取 ASP.NET Core 3.1 中的嵌入式资源。具体来说,我在这里遵循文档中的示例:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/file-providers?view=aspnetcore-3.1

我已将我的 csproj 文件更新为以下内容,添加了 <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
  </PropertyGroup>


  <ItemGroup>
    <EmbeddedResource Include="Data\sessions.json" />
    <EmbeddedResource Include="Data\speakers.json" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\EFLib\EFLib.csproj" />
    <ProjectReference Include="..\RepositoryLib\RepositoryLib.csproj" />
    <ProjectReference Include="..\SeedDataLib\SeedDataLib.csproj" />
  </ItemGroup>

</Project>

我有如下控制台应用程序,运行时出现以下错误。

class Program
{
    static async Task Main(string[] args)
    {
        Console.WriteLine("Hello World!");

        var manifestEmbeddedProvider =
            new ManifestEmbeddedFileProvider(typeof(Program).Assembly); // ERROR HERE

{"无法为程序集 'TestConsoleApp' 加载嵌入文件清单 'Microsoft.Extensions.FileProviders.Embedded.Manifest.xml'。"}

我基本上是在尝试做我在 ASP.NET Core 2 中用来做的事情,但它不起作用。

var assembly = Assembly.GetEntryAssembly();
        string[] resources = assembly.GetManifestResourceNames(); // debugging purposes only to get list of embedded resources

【问题讨论】:

  • 1.new ManifestEmbeddedFileProvider(typeof(Program).Assembly); 用于 Startup.cs 而不是控制台 app.2.assembly.GetManifestResourceNames(); 在 asp.net core3.1 中可以正常工作,你的方案是什么?

标签: asp.net-core .net-core asp.net-core-3.1


【解决方案1】:

我遇到了您描述的相同问题。确保将以下包引用添加到声明嵌入式资源的.csproj。一旦我将它添加到我的项目并重建了解决方案,它就开始工作了。

<ItemGroup>
  <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.0" />
</ItemGroup>

【讨论】:

    猜你喜欢
    • 2012-02-14
    • 2021-11-20
    • 2010-10-22
    • 1970-01-01
    • 2017-03-03
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    相关资源
    最近更新 更多