環境固有のappsetting ファイル (Windows、PowerShell)を発行するための Visual Studio アプローチでの 3 ステップ ビルドを発見しました。
- appsettings.json
- appsettings.Development.json
- appsettings.Staging.json
- appsettings.Production.json
このアプローチは公開します
- appsettings.json と
- appsettings.$(ASPNETCORE_ENVIRONMENT).json.
ステップ 1. csproj を更新します。
<!-- App Settings -->
<ItemGroup>
<Content Remove="appsettings.json" />
<Content Remove="appsettings.*.json" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.json" CopyToOutputDirectory="Always" />
<Content Include="appsettings.$(ASPNETCORE_ENVIRONMENT).json" DependentUpon="appsettings.json" CopyToOutputDirectory="Always" />
</ItemGroup>
ステップ 2. PowerShell で環境変数を設定します。
# Read
[Environment]::GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "User")
# Output: empty string if not set or 'Staging' in my case
# Set environment variable "User" or "Machine" level
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Staging", "User")
ステップ 3. 次に、Visual Studio ソリューションを閉じて再度開き、Visual Studio が環境変数を認識できるようにし、それに応じてプロジェクト構造をリロードします。
- これで、appsettings.json が親になり、appsettings.Staging.json がネストされたファイルになります。
- 別の環境 ("Production" など) を設定し、Visual Studio を閉じてソリューションを再度開くと、appsettings.json が親として、appsettings.Production.json が入れ子になったファイルになります。
最終ステップ。パブリッシングを実行します。
注: 公開プロファイルの環境変数は、公開構成には影響しません。このアプローチでは、PowerShell を使用して環境変数を設定し、環境固有の発行を有効にします。環境変数の詳細については、リンクを参照してください。