質問: Azure devopsのビルドパイプラインを使用してASP.Net Coreをビルドしようとしていますが、ef移行をスクリプト化するスクリプトを実行するとエラーが発生します。 意図的にappsettings.jsonファイルに本番接続文字列がありません。アプリサービスの[構成]セクションに入力される運用接続文字列。 Visual Studioを使用して公開したとおり、Webアプリケーションがデータベースに接続でき、実稼働データベースにテーブルが作成され、DBの読み取り/保存もできることを知っています。 私が実行しているスクリプトは次のとおりです。 ``` dotnet ef migrations script -i -o $(build.artifactstagingdirectory)\scripts.sql --project $(Build.SourcesDirectory)\MyApp\MyApp.csproj --startup-project $(Build.SourcesDirectory)\MyApp\MyApp.csproj ``` スクリプト出力のエラーは次のとおりです。 > System.ArgumentNullException:値をnullにすることはできません。パラメーター名:connectionString > > だから私が持っている質問は、appsettings.jsonファイルに接続文字列を持たずにどのように本番接続文字列をef migrationsコマンドに渡すことができますか?
回答: Azure DevOpsは、すぐにWebApp構成にアクセスできません。 Azure APIを使用してカスタムスクリプトでそれらを読むことができますが、そのAPIはAzureセットアップに関する他の情報も取得する可能性があるため、お勧めしません。 構成(またはその共有部分)をAzure Key Vaultに移動することをお勧めします。そうすると、 .NET CoreアプリとAzure DevOpsの両方から簡単に構成を使用できます。 その後、Azure DevOpsの環境にConnectionStringが構成されたら、通常の`dotnet ef migrations`コマンドが機能するはずです。