.NET Core 3.1控制台应用程序始终处于“生产”模式。

3

这是我的代码

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;

namespace ConsoleApp1
{
class Program
{
    static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, config) =>
    {
        config.Sources.Clear();

        var env = hostingContext.HostingEnvironment;

        config.AddJsonFile("appsettings.json")
              .AddJsonFile($"appsettings.{env.EnvironmentName}.json");

        config.AddEnvironmentVariables();

        if (args != null)
        {
            config.AddCommandLine(args);
        }
    });
}
}

此外,该项目有appsettings.Development.json和appsettings.Production.json。在VS中,我将环境变量ASPNETCORE_ENVIRONMENT明确设置为Development,因此launchSettings.json如下所示:

{
  "profiles": {
  "ConsoleApp1": {
  "commandName": "Project",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}
  }
}

然而,在VS中运行应用程序时,我始终将env.EnvironmentName设置为Production。 我想知道为什么以及如何在这种情况下将环境设置为Development。

1个回答

1

对于控制台应用程序,您需要添加环境变量:"DOTNET_ENVIRONMENT": "Development":

{
  "profiles": {
    "ConsoleApp1": {
      "commandName": "Project",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development"
      }
    }
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接