AWSのElastic BeanstalkにASP.NET Core アプリケーションをデプロイする際、appsettings.jsonの切り替えが意外にも困ったのでまとめ。
appsettings.jsonとappsettings.Development.json、その他appsettings.xxxx.jsonなど「実行環境」の選択でappsettingsを切り替えることは簡単だが、ReleaseやDebugなど「ビルド構成」で切り替える機能は.NET Coreのアプリにはない。
いろんな方法があると思うが、csprojにmsbuildのコピーコマンドを手で追記することで、シンプルにビルド後にビルド後のディレクトリ内でappsettings.jsonをappsettings.xxx.jsonで上書きすることができた。
sample.csproj
<Target Name="CopyStaging" AfterTargets="Build">
<Copy SourceFiles="$(TargetDir)\settings\appsettings.$(Configuration).json" DestinationFiles="$(TargetDir)\appsettings.json" SkipUnchangedFiles="false" />
</Target>