.NET Coreコンソールアプリにappsettings.jsonを追加する
ASP.NET Core アプリでは標準で appsettings.json
や appsettings.Production.json
を読み込んで設定として使用する、またはソリューションエクスプローラー上で階層表示することができます。しかしコンソールアプリではこのような機能が存在しません。
設定として読み込む事よりも csproj 設定を忘れることが多いのでメモしておきます。
appsettings.json をビルド時に出力ディレクトリへコピーする
csproj ファイルに CopyToOutputDirectory
を追加します。値は Never
、 Always
または PreserveNewest
の3択で、それぞれコピーしない、常にコピーする、新しい場合のみコピーする、です。
<Project Sdk="Microsoft.NET.Sdk"> <!-- 省略 --> <ItemGroup> <None Update="appsettings.json;appsettings.*.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup> </Project>
appsettings.json を階層表示する
csproj ファイルに DependentUpon
を追加します。この設定により指定したファイルに対して階層表示がされます。
<Project Sdk="Microsoft.NET.Sdk"> <!-- 省略 --> <ItemGroup> <None Update="appsettings.json;appsettings.*.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Update="appsettings.*.json"> <DependentUpon>appsettings.json</DependentUpon> </None> </ItemGroup> </Project>