我读到某处.NetCore 2.2在GetCurrentDirectory
方法中存在一个错误。 https://github.com/aspnet/AspNetCore/issues/4206
我们有一个带有netcore 2.2的ASP.Net WebApi。
我想知道,访问位于我的根目录中的本地文件的最佳方法是什么。
有太多示例,但是我正在寻找在本地和生产环境(docker容器)上都可以使用的最佳实践。 目前,我使用以下语法:
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
string csvPath = Path.Combine(baseDirectory, fileName);
csv文件将始终复制到输出目录,并且一旦发布,它将与可执行文件位于同一文件夹中。
其他语法,例如:
在服务中注入IHostingEnvironment
,然后调用ContentRootPath
。像这样:
private readonly IHostingEnvironment _hostingEnvironment;
public Service(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
string csvPath = Path.Combine(_hostingEnvironment.ContentRootPath, fileName);
答案 0 :(得分:0)
有一种方法可以通过.Net core 2.2为我工作。
您可以使用以下行访问.Net应用程序中的文件。
string path = Path.Combine(Directory.GetCurrentDirectory),filename);
并在构建映像时将文件复制到docker容器中。
COPY --from=build /app/ .
COPY --from=build /app/[folder-where-file]/ .