ASP.NET Core在调试时读取内容文件

时间:2019-04-02 06:54:56

标签: c# .net asp.net-core

我需要从asp.net核心应用读取一些json文件。它们在名为data的文件夹下

--MyProject
---Startup.cs
---Data
------dataset1.json
------dataset2.json

我正在使用IHostingEnvironment ContentRootPath读取文件:

 string pathToFile = hostingEnvironment.ContentRootPath
                            + Path.DirectorySeparatorChar
                            + "Data"
                            + Path.DirectorySeparatorChar
                            + "dataset1.json"

返回C:\SourceControl\Test.Backend\src\Test.Web\Data\dataset1.json

当我在IIS中发布代码时,此方法工作正常。但是,当我调试文件时,文件被复制到bin文件夹中,以上代码不起作用。 调试时如何读取文件?

1 个答案:

答案 0 :(得分:1)

#if DEBUG

 string pathToFile = hostingEnvironment.ContentRootPath
                        + Path.DirectorySeparatorChar
                        + "bin"
                        + Path.DirectorySeparatorChar
                        + "Data"
                        + Path.DirectorySeparatorChar
                        + "dataset1.json"

#else

string pathToFile = hostingEnvironment.ContentRootPath
                        + Path.DirectorySeparatorChar
                        + "Data"
                        + Path.DirectorySeparatorChar
                        + "dataset1.json"

#endif

使用这种方法在调试模式和生产环境中可以有两个不同的路径。只需更改您的需求的第一条路即可