我有一个.NET Core 1.0.0控制台应用程序和两个环境。我需要能够使用appSettings.dev.jsonappSettings.test.json根据环境变量,我在运行时设置。对于ASP.NET核心Web应用程序,通过依赖注入和IHOSTINGINDENVIRNTMENT和环境名称Env而言,这似乎非常直接。可变,但是我应该如何将其连接到控制台应用程序(除了编写自己的自定义代码外Microsoft.Framework.Configuration.EnvironmentVariables)?

谢谢。

答案

这就是我们在我们的.netcore控制台应用程序。这里的关键是包括权利dependencies 在您的项目中(可能不是全部,请根据您的需求进行检查 ) 和copy to output appsetting.json作为您的一部分buildoptions

  {
    "buildOptions": {
    "emitEntryPoint": true,
    "copyToOutput": {
       "include": [
       "appsettings*.json",
       "App*.config"
                 ]
          }
},

using Microsoft.Extensions.Configuration;
namespace MyApp
{
    public static void Main(string[] args)
    {
        var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
       

        var builder = new ConfigurationBuilder()
            .AddJsonFile($"appsettings.json", true, true)
            .AddJsonFile($"appsettings.{environmentName}.json", true, true)
            .AddEnvironmentVariables();
        var configuration = builder.Build();
        var myConnString= configuration.GetConnectionString("SQLConn");
    }
}

来自: stackoverflow.com