ASPNET Core如何解析配置路径

问题描述 投票:0回答:1

我有以下代码:

 var config = new ConfigurationBuilder();

    config
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddEnvironmentVariables()
        .AddJsonFile("appsettings.json")
        .AddJsonFile($"appsettings.{environment}.json", true);

在开发环境和生产方面也很好。但是,如果我这样做:

    Raise<FileNotFoundException>.If(File.Exists(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json")),
        $"Could not find the settings file");

它在调试会话和发布会话期间引发异常(基本上当应用程序未从Visual Studio发布和执行时)找不到正确的文件,因为VS2017不会将设置文件复制到调试文件夹而是保留它们源文件夹。所以我的问题是,dotnet核心如何解析aspnet核心的配置路径?

asp.net-core configuration
1个回答
0
投票

我觉得你对这里的事情感到困惑。默认情况下,从入口点目录中提取配置。在Visual Studio内部或从项目根目录中的命令行运行dotnet run时,一切正常。此外,在发布时,发布的目录将包含配置文件以及入口点DLL,因此这也可以正常工作。

你似乎在谈论的是从bin目录运行,这是一个不受支持的东西。 bin目录实际上是一个缓存。它不是您的应用程序的已发布版本,因此无法像它一样运行。

© www.soinside.com 2019 - 2024. All rights reserved.