Asp.NETコアappsettings.jsonにWeb.configトランスフォームの代替品がありますか?Asp.NETコアappsettings.jsonにWeb.configトランスレーションの代替品がありますか?
VSからstaging.productionサーバーにデプロイするときに、接続文字列やその他の設定を変更したいと思います。
Asp.NETコアappsettings.jsonにWeb.configトランスフォームの代替品がありますか?Asp.NETコアappsettings.jsonにWeb.configトランスレーションの代替品がありますか?
VSからstaging.productionサーバーにデプロイするときに、接続文字列やその他の設定を変更したいと思います。
はい、ターゲットシステムで環境変数を使用する必要があります。
ASP.NETコアは、特定の環境変数を参照し、ASPNETCORE_ENVIRONMENTは、アプリケーションが、現在で実行されている環境を記述するために、この変数はあなたが好きな任意の値に設定することができますが、3つの値は、慣例により使用されます。開発、ステージング、および生産。これらの値は、ASP.NETコアで提供されるサンプルおよびテンプレートで使用されています。
ランタイム
で環境を決定IHostingEnvironmentサービスが環境で作業するためのコア抽象化を提供します。このサービスは、ASP.NETホスティングレイヤーによって提供され、依存関係注入を介してスタートアップロジックに注入できます。 Visual StudioのASP.NET Core Webサイトテンプレートは、この方法を使用して、環境固有の構成ファイル(存在する場合)を読み込んで、アプリケーションのエラー処理設定をカスタマイズします。いずれの場合も、この動作は、現在指定されている環境を参照して、適切なメソッドに渡されたIHostingEnvironmentのインスタンスでEnvironmentNameまたはIsEnvironmentを呼び出すことによって実現されます。
https://docs.asp.net/en/latest/fundamentals/environments.html
まず、
ASP.NETコアのコンフィギュレーション・システムは
System.Configuration
に頼っていたASP.NETの以前のバージョンから再設計されたことを、心に留めておくと、 web.configのようなXML設定ファイル。新しい構成モデルは、さまざまなソースから取得できるキー/値ベースの設定への合理的なアクセスを提供します。ASP.NETアプリケーションの設定を操作するには、アプリケーションのStartupクラスで構成をインスタンス化することをお勧めします。最も単純な構成は、名前と値のペアの読み取りと書き込みを行うソースを集めたものに過ぎません。
ASP.NET Coreは、ソースとしてJSON、XML、およびINI構成ファイルを組み込みサポートしており、現在の環境に合わせてソースを選択することができます。現在の環境を設定/決定するには、環境変数ASPNETCORE_ENVIRONMENT
が使用されます。事前定義された値はDevelopment
,Staging
,Production
ですが、カスタムも可能です。
接続文字列を格納するためのJSONファイル(慣習としてはappsettings.json
)を使用したいとします。環境に応じてそれらの
appsettings.Development.json
appsettings.Staging.json
appsettings.Production.json
と負荷1:何をする必要がある別のような(あなたが持っている各環境用)appsettings.{EnvironmentName}.json
ファイルを作成することです:
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
これらの詳細については、“Configuration” chapterおよび“Working with multiple environments” chapterのASP.NET Coreドキュメントを参照してください。
ありがとう、しかし、上記の私のコメントを参照してください。 –
まあ、私はこのアプローチを知っていますが、web.configの変換と比べて異なるものです。これは1つの設定ファイルを生成しませんが、両方をターゲット環境にアップロードする必要があります。 2つの意味は、 "共有"設定 "application.json"と環境固有の "applicaton.staging.json"を持つものです。 –