首页 > 解决方案 > Azure devops ASP.Net Core EF 迁移生产连接字符串 null

问题描述

我正在尝试使用 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:值不能为空。参数名称:连接字符串

所以我的问题是如何在没有 appsettings.json 文件中的连接字符串的情况下将生产连接字符串传递给 ef migrations 命令?

标签: asp.net-coreazure-devopsentity-framework-core

解决方案


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

我建议您将配置(或其共享部分)移动到 Azure Key Vault,然后您可以轻松地使用来自.NET Core 应用程序Azure DevOps的配置。

之后,当 Azure DevOps 在其环境中配置了您配置的 ConnectionString 时,通常的dotnet ef migrations命令应该可以工作。


推荐阅读