ASP.NET Coreアプリケーション(Web API)があります。ドキュメントには次のように説明されています複数の環境で作業するaspnetcore_environment
しかし、 Webサイトを公開する際の設定方法については説明されていませんでした。
3つの環境があるとしますDevelopment
。Staging
Production
従来の ASP.NET Web アプリケーションでは、3 つのビルド構成を作成していました。
Development
、Staging
およびProduction
(下の図に示すように)。次に、各構成に 1 つずつ、合計 3 つのファイルを作成します。アプリケーションにも.pubxml
同じアプローチを使用する必要がありますか?ASP.NET Core
ファイル
aspnetcore_environment
にどのように設定しますか?.pubxml
質問 1 で指定されたアプローチが廃止されている場合、代替アプローチは何ですか? (CI には Jenkins を使用します)
アップデート1
設定する必要があることは理解してASPNETCORE_ENVIRONMENT
いますが、どこで設定すればよいのかわかりません。開発中は のプロファイルで設定できますがlaunchSettings.json
、ステージングまたは本番環境に公開するときにどのように設定すればよいのかという疑問があります。ターゲット サーバー自体で環境変数を設定するのでしょうか?
アップデート2
記事を見つけましたここ環境変数を設定するさまざまな方法を説明しています。これは私の質問に部分的に答えてくれました。しかし、アプリケーションを公開すると、公開プロセスは環境変数を尊重しません。公開中にappsettings.{env.EnvironmentName}.json
私は別の役職その質問に対して
ベストアンサー1
次のようにして、必要な ASPNETCORE_ENVIRONMENT を引数として dotnet publish コマンドに渡すことができます。
/p:EnvironmentName=Staging
例えばdotnet publish /p:Configuration=Release /p:EnvironmentName=Staging
これにより、プロジェクトに指定された正しい環境を含む web.config が生成されます。
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Staging" />
</environmentVariables>