2017-09-29 48 views

答えて

0

相対パスが好きではないようです。しかし、この作品...

public static IWebHost BuildWebHost(string[] args) => 
    WebHost.CreateDefaultBuilder(args) 
     .ConfigureAppConfiguration((hostingContext, config) => 
     { 
      if (!hostingContext.HostingEnvironment.IsDevelopment()) 
      { 
       var parentDir = Directory.GetParent(hostingContext.HostingEnvironment.ContentRootPath); 
       var path = string.Concat(parentDir.FullName, "\\config\\appsettings.json"); 

       config.AddJsonFile(path, optional: false, reloadOnChange: true); 
      } 
     }) 
     .UseStartup<Startup>() 
     .Build(); 

だから、それはデフォルトで追加のソースの上に別の設定ファイルです。

2

あなたが本当にあなたのソースコントロールに入れたくないのなら、それをそのままにしてソースコントロールの無視に加えて、@PmanAceが提案したように決してコミットしないようにしてください。

ただし、私は個人的にはappsettings.jsonのようなファイルを入力する必要があります。としてください。基本的には、アプリケーションに必要な構成を文書化する役割を果たします。それを目安にしないと、どのようにしてappsettings.jsonに入るべきなのかを知っている人はいますか?ソースコントロールのプルには含まれないため、作成しなければなりません。

これは、機密データを保存して考えるという問題があります。しかし、これには他の方法があります。環境変数やユーザーの秘密などの他の構成方法を使用して、appsettings.jsonのいずれかを上書きすることができます。したがって、接続文字列などの場合は、appsettings.jsonのプレースホルダを用意して、その値を提供する必要があることを自己文書化しますが、個人的にはユーザーの秘密や環境変数を利用して値を上書きしますリアル。そうすれば、アプリケーションに必要な設定を完全に文書化し、個人情報や機密情報が含まれていることを心配することなく、自由に安全にappsettings.jsonをコミットできます。

+0

はい、私はプロジェクトにappsettings.jsonを残しています。ドキュメント化されていない設定については、展開されています。そして、はい、私は機密データをVisual Studio Onlineで暗号化したままにしておくことができますが、現在のところ、最も単純なことは、ファイルシステム内の他の場所にあるオーバーライドバージョンを非表示にすることです。 –

+0

実際には、ユーザーの秘密(VSTSの一部ではなくローカルのものです)を介して設定を試しましたか?それは超シンプルであり、開発のために完璧に機能します。 –

+0

開発用です。私は理想的なのは、配備時に機密アプリの設定を暗号化することだと思います。従来のweb.configではこれが可能です。 MVC Coreがサポートしているかどうかはわかりません。 –

関連する問題