控制台应用程序看不到Appsettings.Development.json .net core 3.1配置问题

Pio*_*r P 7 c# config appsettings .net-core asp.net-core

在我的 asp.net core 3.1 控制台应用程序中。在主类中我有这样的代码:

class Program
{
    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder();
        BuildConfig(builder);

        var host = Host.CreateDefaultBuilder()
            .ConfigureServices((context, services) =>
            {
                services.AddTransient<StartService>();
            })
            .Build();
        
        var svc = ActivatorUtilities.CreateInstance<StartService>(host.Services);
        
        svc.Run();
    }

    static void BuildConfig(IConfigurationBuilder builder)
    {
        builder.SetBasePath(Directory.GetCurrentDirectory())
           .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
           .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development"}.json", optional: true)

            .AddEnvironmentVariables();
    }
}
Run Code Online (Sandbox Code Playgroud)

环境设置为开发 在此输入图像描述

和这样的配置文件(只有值不同):

在此输入图像描述

我的应用程序不断从 appsettings.json 获取值。为了从 appsettings.Developement.json 获取值,需要更改什么?

我也这样尝试过,但也没成功:

    static void BuildConfig(IConfigurationBuilder builder)
    {
        builder.SetBasePath(Directory.GetCurrentDirectory())
           .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
           .AddJsonFile("appsettings.Development.json", optional: true)

            .AddEnvironmentVariables();
    }
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?文件已正确复制到 bin 在此输入图像描述

小智 8

我的控制台应用程序使用默认配置提供程序时遇到了同样的问题。原因是不正确的环境变量,如屏幕截图所示 - ASPNETCORE_ENVIRONMENT。我通过将其替换为 DOTNET_ENVIRONMENT 来修复它:

在此输入图像描述


Edw*_*san 5

对于.Net 6.0

添加环境变量DOTNET_ENVIRONMENT=Development

重新启动 Visual Studio 2022。

环境变量

  • 您不需要在系统属性中设置它。您可以在 Visual Studio 中将其作为启动配置文件执行此操作。 (2认同)