質問: ドキュメントには、カスタム環境変数を渡すための2.0のサポートはありませんが、EFコア1.0では--environment引数がサポートされています。この機能はEF Core 2.0でもサポートされているはずです。 現在、私は同じマシンに複数のアプリケーションを配備していますが、同じマシン上の異なるバージョンを配備しています。私はPuppetを使用していくつかの展開プロセスを自動化し、 `Company.Project.[env]`ようなIISのWebサイトで終わります。ここで、 `env`はそれぞれ.dev、.test、.uatのようなもので、それぞれAppPoolなどで実行されます。ASP.NET Core 2.0では、配備されたaspnetコアのWebサイトとその環境ごとに< `environmentVariable` >をweb.configに適用できます`web.config`変数は、 `ASPNETCORE_ENVIRONMENT`任意のマシン環境変数より優先されます。人形の配備中、ASPNETCORE_ENVIRONMENT変数のweb.configに正しい値が挿入されますが、これは私にとって理にかなうもので、配備された各アプリケーションは正しくブートストラップされ、適切な`appsettings.[environment].json`ファイルに`appsettings.[environment].json`ます。 今、EF Core 2.0では、私はこれを行うことができません。私は、環境ごとに別々のデータベースプロジェクトを展開し、展開された各パッケージに環境名をつけることを計画していました。ウェブサイトでのやり方と同じように、dotnet `dotnet ef`コマンドを実行して彼らは適切な`appsettings.[environment].json`ファイルを読み込み、移行を実行するための適切なデータベース環境接続文字列を持っています。 ASPNETコアのウェブサイトは、<サポートしている場合`environmentVariable`に>を`web.config`のユニークな環境変数を消費同じマシンに展開する複数のプロジェクトが可能になります。それでは、EF Coreが環境を通過するのをサポートするような気がします。 これはもはやサポートされていないので、同じマシンに複数回アプリケーションをデプロイする最も良い方法は何でしょうか?特定のappsettingsを対象とするdotnet `dotnet ef`コマンドを実行してください。[environment] .json efコマンドが特定の接続文字列配備されたプロジェクトで実行し、そのマシン上の正しいデータベースで移行を実行します。
回答: EF Coreは、カスタム引数をefツールコマンドに渡す方法をサポートします。この機能をトラッキングしていることがわかりました。 これが完了すると、efコマンドとともに接続文字列またはその他の環境引数を渡すことができます。