【问题标题】:Make .xlsx template file available in published .NET Core 2.0 app使 .xlsx 模板文件在已发布的 .NET Core 2.0 应用程序中可用
【发布时间】:2017-11-16 07:10:39
【问题描述】:

我有一个 .NET Core 2.0 解决方案,其中包含 3 个项目(DataAccess、Services、WebAPI)。在 WebAPI 项目的 wwwroot 文件夹中,我创建了一个包含几个 Excel 模板文件的模板文件夹。在服务中,我有一个包含 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 publish missing-template


    【解决方案1】:

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

    More information from the web.

    【讨论】:

    • 嗨,萨米。我无法从服务中做到这一点吗?其他人在前端部分工作,这是一个我无权访问的单独项目。我不想搞砸整个项目...
    • @kanpeki 我认为您也可以将其注入方法调用中,或者在创建服务时将其作为参数提供。
    猜你喜欢
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多