2017-11-16 21 views
0

私は、3つのプロジェクト(DataAccess、Services、WebAPI)を含む.NET Core 2.0ソリューションを用意しています。 WebAPIプロジェクトのwwwrootフォルダには、いくつかのExcelテンプレートファイルを含むテンプレートフォルダが作成されています。サービスでは、ExportServiceを含むExportフォルダがあります。 ExportServiceはテンプレートを使用していくつかのレポートを生成します。私はテンプレートディレクトリへのパスを '取得'するプライベートメソッドを持っています。実際には、相対パスを指定するだけで、デバッグ時にはうまく動作しますが、プロジェクトを公開するときにはうまく動作しません。公開されたアプリでファイルを使用可能/到達可能にするにはどうすればよいですか? ASP.NETコアと公開.NET Core 2.0アプリケーションで.xlsxテンプレートファイルを使用可能にする

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

    return templatePath; 
} 

答えて

1

あなたのコントローラにIHostingEnvironmentを注入することをお勧めします(またはあなたはこれを必要な場所)。そのオブジェクトからwwwrootへのパスを含むWebRootPathを得ることができます。それを使ってその中のファイルを探します。

More information from the web.

+0

こんにちは、サミ。サービスからこれを行う方法はありませんか?他の誰かがフロントエンドで作業しましたが、アクセス権のない別のプロジェクトです。私はプロジェクト全体を台無しにしたくありません... – kanpeki

+0

@ kanpeki私はあなたがそれをメソッド呼び出しでも注入することができる、またはそれが作成されたときにサービスの引数として与えることができると思います。 –

関連する問題