1. ホーム
  2. c#

[解決済み] .NET Coreコンソールアプリケーションで、環境ごとにappSettingsを設定する方法とは?

2023-01-31 23:06:46

質問

.NET Core 1.0.0のコンソールアプリケーションと2つの環境を持っています。私は appSettings.dev.jsonappSettings.test.json を実行時に設定した環境変数に基づいて作成します。ASP.NET Core Web アプリケーションでは、依存性注入と IHostingEnvironment、および EnvironmentName 環境変数によって、これは非常にわかりやすいと思われますが、コンソール アプリケーションではどのように配線すればよいでしょうか (独自のカスタム コードとして Microsoft.Framework.Configuration.EnvironmentVariables )?

ありがとうございます。

どのように解決するのですか?

これは、私たちの .netcore コンソールアプリで行う方法です。ここで重要なのは、正しい 依存関係 をプロジェクトに含めることです。 はすべてではないかもしれませんが、あなたのニーズに基づいて確認してください。 ) と を出力にコピーします。 の一部として、appSetting.jsonを出力します。 buildoptions

  {
    "buildOptions": {
    "emitEntryPoint": true,
    "copyToOutput": {
       "include": [
       "appsettings*.json",
       "App*.config"
                 ]
          }
},

using Microsoft.Extensions.Configuration;
namespace MyApp
{
    public static void Main(string[] args)
    {
        var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
       

        var builder = new ConfigurationBuilder()
            .AddJsonFile($"appsettings.json", true, true)
            .AddJsonFile($"appsettings.{environmentName}.json", true, true)
            .AddEnvironmentVariables();
        var configuration = builder.Build();
        var myConnString= configuration.GetConnectionString("SQLConn");
    }
}