C# ASP.NET Core 2.1提供来自另一个项目的静态文件
我正在尝试使用ASP.NET Core 2.1后端为API和Angular前端提供服务C# ASP.NET Core 2.1提供来自另一个项目的静态文件,c#,asp.net-core,asp.net-core-2.1,C#,Asp.net Core,Asp.net Core 2.1,我正在尝试使用ASP.NET Core 2.1后端为API和Angular前端提供服务Startup.cs位于项目MyApp.Api中。我希望我的静态文件从另一个项目的wwwroot中提取,MyApp.FrontEnd 我已经看到了下面描述的方法 app.UseStaticFiles(new StaticFileOptions { FileProvider = new EmbeddedFileProvider( assembly: Assembly.Load(new As
Startup.cs
位于项目MyApp.Api
中。我希望我的静态文件从另一个项目的wwwroot中提取,MyApp.FrontEnd
我已经看到了下面描述的方法
app.UseStaticFiles(new StaticFileOptions {
FileProvider = new EmbeddedFileProvider(
assembly: Assembly.Load(new AssemblyName("OpenIddict.Assets")),
baseNamespace: "OpenIddict.Assets")
});
但是,当我尝试用我的项目名称替换“OpenIddicts.Assets”时,出现以下错误:
FTL应用程序启动异常
System.IO.FileNotFoundException:无法加载文件或程序集
'MyApp.FrontEnd,区域性=中性,PublicKeyToken=null'。
系统找不到指定的文件。
文件名:“MyApp.FrontEnd,区域性=中性,PublicKeyToken=null”
上面链接的帖子中引用的GitHub存储库似乎不再存在。我想我错过了一个很明显的地方。任何帮助都将不胜感激。
MyApp.FrontEnd.dll
必须存在于输出文件夹中。如果您发布了主项目(它引用了MyApp.FrontEnd
),那么一切都应该正常工作
如果您可以从程序集访问某些类型,则可以尝试使用assembly.GetAssembly(type)
而不是assembly.Load(…)
,即
app.UseStaticFiles(new StaticFileOptions {
FileProvider = new EmbeddedFileProvider(
assembly: Assembly.GetAssembly(typeof(SomeClassFromAssembly)),
baseNamespace: "OpenIddict.Assets")
});
您是否从
MyApp.Api
中引用了MyApp.FrontEnd
?您是否有任何理由不能使用PhysicalFileProvider
,或者文件是否需要来自程序集?