2016-12-12 15 views
0

appsettings.jsonファイル(ASP.NETコアアプリケーション)の "Data:ConnectionString"という名前のコンフィグレーションでは、ビルドでこれをオーバーライドするにはどうすればよいですか?これを上書きすることで、ビルド中にコンパイルする前にappsettings.jsonの値を変更するステップがあるか、「dotnet test」などを使用するときにパラメータを上書きすることができます。ソース管理のコンフィグレーション変換を使用しないビルドでのコンフィグレーション管理

さらに詳しい情報:

私はappsettings.jsonで標準構成でのASP.NET Coreアプリケーションを持っています。ソースコントロールで接続文字列や機密データをチェックしたくありません。

Visual Studio Team Service(クラウドTFS)を使用してアプリケーションを構築しています。テストが実行されるステップがあり、資格情報をチェックインしたくないリモートサービスに対してこれらのテストを実行します。

答えて

1

http://marketplace.visualstudio.comにはいくつかの拡張機能が用意されており、複雑さの解消に役立ちます。

https://marketplace.visualstudio.com/items?itemName=YodLabs.VariableTasks

私は変数のタスクはそれが付属していますパック好き:

  • 設定変数が変数の値を設定し、必要に応じてそれに変換を適用します。資格を持つ
  • 設定変数JSONから
  • 変数を設定はJSONPath
  • を使用してJSONから値を抽出し、既存のサービスエンドポイントからユーザー名/パスワードを設定しますXMLから変数を設定は、XPath
  • アップデートビルドを使用してXMLから値を抽出します番号は、あなたが数 インクリメントバージョンがsemverのバージョン番号

は超簡単増分ビルドを変更することができます...あなたはまた、単に他のオプションを見つけるために、「JSON」または「変数」を検索することができます...

+1

Thxビルドで上書きしてhttps://marketplace.visualstudio.com/ items?itemName = sergeyzwezdin.magic-chunks –

0

ほとんどの一般的な方法:

  • 使用app secrets
  • あなたproject.jsonでscriptsセクションを使用します。あなたが「テスト」のようなものにビルドに環境変数を設定することができASPNETCORE_ENVIRONMENT プリコンパイル、postcompile、prepublish、postpublish
+0

私の問題はローカルのマシンでは無効になっていません。私の問題はビルドプロセスの一環として実行しているときです。その場合、これらのオプションがどのように役立つかはわかりません。チームサービスのアプリ秘密をどうやって管理できますか? –

0

- あなたは4つのイベントがあります。 appsettings.Test.Jsonという名前のappsettings.jsonファイルを作成します。あなたがStartup.csでご使用の構成を設定している場合、その後

環境変数がTESTに設定されている
  var builder = new ConfigurationBuilder() 
      .SetBasePath(env.ContentRootPath) 
      .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 

は、あなたが新しいのAppSettingsファイルがロードされます...のような何かをして、あなた何でもへの接続文字列を設定することができます欲しいです。

+0

これはappsettingsファイルをチェックインする通常の方法です。私は "秘密"をチェックせずに、 –

関連する問題