我正在尝试使用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命令?
答案 0 :(得分:0)
Azure DevOps无法直接使用WebApp配置。您可以使用Azure API使用自定义脚本来阅读它们,但我不建议这样做,因为该API还可获取有关Azure设置的其他信息。
我建议您将配置(或其共享部分)移至Azure Key Vault,然后可以从.NET Core apps和Azure DevOps轻松使用配置。
然后,当Azure DevOps在其环境中具有配置的ConnectionString时,通常的dotnet ef migrations
命令应该可以使用。