Azure devops ASP.Net Core EF迁移生产连接字符串为空

时间:2019-04-26 01:43:50

标签: asp.net-core azure-devops entity-framework-core

我正在尝试使用Azure devops中的生成管道来构建ASP.Net Core,并在运行用于脚本ef迁移的脚本时出现错误。

我有意在appsettings.json文件中没有生产连接字符串。生产连接字符串填充在应用程序服务的“配置”部分中。我知道该Web应用程序可以连接到我使用Visual Studio发布的数据库,并且已经在生产数据库中创建了表,并且还可以从数据库读取/保存到数据库。

我正在运行的脚本是:

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命令?

1 个答案:

答案 0 :(得分:0)

Azure DevOps无法直接使用WebApp配置。您可以使用Azure API使用自定义脚本来阅读它们,但我不建议这样做,因为该API还可获取有关Azure设置的其他信息。

我建议您将配置(或其共享部分)移至Azure Key Vault,然后可以从.NET Core appsAzure DevOps轻松使用配置。

然后,当Azure DevOps在其环境中具有配置的ConnectionString时,通常的dotnet ef migrations命令应该可以使用。