Asp.net core 使.xlsx模板文件在已发布的.NET Core 2.0应用程序中可用

Asp.net core 使.xlsx模板文件在已发布的.NET Core 2.0应用程序中可用,asp.net-core,publish,missing-template,Asp.net Core,Publish,Missing Template,我有一个.NETCore2.0解决方案,包含3个项目(DataAccess、Services和WebAPI)。在WebAPI项目的wwwroot文件夹中,我创建了一个包含两个Excel模板文件的templates文件夹。在服务中,我有一个包含ExportService的导出文件夹。ExportService使用模板生成一些报告。我有一个私有方法“获取”模板目录的路径。事实上,我只是指定了它的相对路径,在调试时可以正常工作,但在发布项目时却不行。如何使文件在我发布的应用程序中可用/可访问 priv

我有一个.NETCore2.0解决方案,包含3个项目(DataAccess、Services和WebAPI)。在WebAPI项目的wwwroot文件夹中,我创建了一个包含两个Excel模板文件的templates文件夹。在服务中,我有一个包含ExportService的导出文件夹。ExportService使用模板生成一些报告。我有一个私有方法“获取”模板目录的路径。事实上,我只是指定了它的相对路径,在调试时可以正常工作,但在发布项目时却不行。如何使文件在我发布的应用程序中可用/可访问

private string GetExcelTemplatePath()
{
    var templatesDirectory = "..\\WebAPI\\wwwroot\\templates";
    var templateName = "Excel_template_v1.xlsx";
    var templatePath = Path.Combine(templatesDirectory, templateName);

    return templatePath;
}

使用ASP.NET Core,您需要将
IHostingEnvironment
注入控制器(或任何需要的地方)。从该对象可以获得
WebRootPath
,其中包含指向
wwwroot
的路径。使用它来查找其中的文件


你好,萨米。我无法从服务中做到这一点吗?其他人在前端部分工作,这是一个单独的项目,我没有访问权。我不想把整个项目搞砸…@kanpeki我想你也可以在方法调用中注入它,或者在创建服务时将它作为参数。