Преобразование Appsettings в .NetCore не работает должным образом - PullRequest
2 голосов
/ 18 июня 2019

Я разработал веб-API и опубликовал его на azurewebsites.net. Я добавил следующие дополнительные настройки приложения: -

  1. appsettings.Dev.json
  2. appsettings.Test.json
  3. appsettings.Prod.json

Чтобы иметь возможность извлекать значения из этих преобразований appsettings, я внес следующие изменения в код:

Пробовал решение, упомянутое здесь: https://stackoverflow.com/a/44953524/10485667

Даже пытался использовать только разработку / отладку, этапирование и производство / выпуск вместо Dev, Test, Prodcetive. Но не повезло. Он будет публиковать только значения из основного appsettings.json.

Startup.cs

public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
#if DEBUG
                    .AddJsonFile($"appsettings.Dev.json", optional: true)
#endif
                    .AddEnvironmentVariables();

        Configuration = builder.Build();
        appSettings = Configuration.Get<AppSettingsModel>().AppSettings;

    }

даже пробовал этот код:

AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)

Попробовал изменить Program.cs:

 public class Program
{
    public static void Main(string[] args)
    {
        var config = new ConfigurationBuilder()
       .AddJsonFile($"appsettings.Development.json", optional: true)
       .Build();
        ILogger logger = null;
        var host = CreateWebHostBuilder(args)
            .UseConfiguration(config)
            .Build();
        logger = host.Services.GetService<ILogger>();
        host.Run();
    }
}

Перепробовал все возможные решения, представленные в интернете, но не повезло. После публикации в Azure он принимает значения только из appsettings.json

Я думаю, что мог бы сделать некоторую концептуальную ошибку, пытаясь найти эти решения. Любая помощь приветствуется.

Заранее спасибо

...