【发布时间】: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