如何使用Azure Devops Pipeline CI/CD将Sql文件部署到专用服务器



我正在开发Azure DevOps CI CD管道。该项目的后端是Dotnet Core,前端是Angular 8,对于数据库,我们使用实体框架代码优先的方法。我能够在管道中添加前端和后端。现在我陷入了数据库部署的困境。因为我也找不到任何专门的文章。

该项目由多上下文和多项目组成。参考文件夹结构

在本地,我们通常运行这个命令来生成迁移,它运行得很好。

添加迁移-上下文ABCCompanyContext AddCompanyTable

现在,在Pipeline中,我添加了以下命令,该命令是从stackoverflow中获得的。但没有奏效。但是由于这个错误。看起来我真的很接近

管道命令

dotnet工具安装-全局dotnet ef dotnet ef迁移脚本-i-o$(Build.ArtifactStagingDirectory(\Migrations\migrate.sql--项目**/ABC.Company.Data.csproj--启动项目**/AABC.Company.Api.csproji-i-o$(Build.ErtifactStaging Directory(\Mmigrations\migrate.sql

错误日志

2020-12-24T06:49:27.0265041Z================启动命令输出===========================2020-12-24T06:49:27.0688206Z#[命令]";C: \windows\system32\cmd.exe"/D/E:ON/V:OFF/S/C";呼叫"D: \a_temp\f3a33029-4f61-404f-9b64-c73c5296123a.cmd"2020-12-24T06:49:32.9358440Z您可以使用以下命令:dotnet ef 2020-12-24T06:49:32.9359182Z工具已成功安装"dotnet ef"(版本"5.0.1"(。2020-12-24T06:49:38.4701578Z System.IO.IOException:文件名,目录名或卷标语法不正确。:'D:\a\1\s*\obj'2020-12-24T06:49:38.4702878ZSystem.IO.FileSystem.CreateDirectory(字符串完整路径,字节[]securityDescriptor(2020-12-24T06:49:38.4703503ZSystem.IO.Directory.CreateDirectory(字符串路径(2020-12-24T06:49:38.4704199ZMicrosoft.EntityFrameworkCore.Tools.Project.FromFile(字符串文件,String buildExtensionsDir,字符串框架,字符串配置,字符串运行时(2020-12-24T06:49:38.4705029ZMicrosoft.EntityFrameworkCore.Tools.RootCommand.Execute(String[]_(2020-12-24T06:49:38.4705729ZMicrosoft.EntityFrameworkCore.Tools.Commands.CommandBase。<gt;c__DisplayClass0_0.b_0(字符串[]args(2020-12-24T06:49:38.4706399ZMicrosoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[]args(2020-12-24T06:49:38.4707003ZMicrosoft.EntityFrameworkCore.Tools.Program.Main(String[]args(2020-12-24T06:49:38.4707626Z文件名、目录名或卷标签语法不正确。:'D: \a\1\s*\obj'2020-12-24T06:49:38.6646502Z##[error]Cmd.exe退出,代码为"1"。2020-12-24T06:49:38.7627325Z##【章节】精加工:构建EfCore迁移

错误消息,

System.IO.IOException:文件名、目录名或卷标语法不正确。:'D: \a\1\s\*\obj'

路径字符串包含字符"*"。通常,该字符在文件名和文件夹名中不可用。

正如有关.NET Core CLI的文档中的介绍,选项">--project"one_answers">--startup-project(的值是指向项目文件夹的相对路径。

根据我的测试,在'dotnet ef'命令中,它似乎不支持通配符模式。

  • 当我使用通配符模式设置路径值时,它总是返回相同的错误消息

System.IO.IOException:文件名、目录名或卷标语法不正确。:'D: \a\1\s\**\obj'

  • 但是,当我直接提供完整的相对路径而不是使用通配符模式时,错误就会消失

因此,我建议您直接使用项目文件夹的完整相对路径。

相关内容

  • 没有找到相关文章

最新更新