1. ホーム
  2. c#

[解決済み] asp.net core で開発環境とリリース環境の appsettings.json を自動的に設定しますか?

2022-04-26 21:06:58

質問

には、いくつかの値を定義しています。 appsettings.json データベース接続文字列、WebAPI の場所など、開発環境、ステージング環境、本番環境で異なるものを指定します。

複数の appsettings.json ファイル(例えば appsettings.live.json また、asp.netアプリは、実行中のビルド構成に基づいて、どれを使用するかを「知って」いるのでしょうか。

解決方法は?

条件付きコンパイルを使用することができます。

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
    .SetBasePath(env.ContentRootPath)
    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
#if SOME_BUILD_FLAG_A
    .AddJsonFile($"appsettings.flag_a.json", optional: true)
#else
    .AddJsonFile($"appsettings.no_flag_a.json", optional: true)
#endif
    .AddEnvironmentVariables();
    this.configuration = builder.Build();
}