.net core Azure DevOps管道dotnet ef迁移因本地工件而失败

.net core Azure DevOps管道dotnet ef迁移因本地工件而失败,.net-core,azure-devops,azure-pipelines,azure-artifacts,azure-devops-pipelines,.net Core,Azure Devops,Azure Pipelines,Azure Artifacts,Azure Devops Pipelines,我的Azure DevOps管道需要访问Azure DevOps工件源中存储的一些NuGet软件包 包源工件在nuget.config的中定义: 并添加了--no restore参数。 现在它可以工作了: -任务:DotNetCoreCLI@2 投入: 命令:发布 publishWebProjects:正确 参数:'--configuration$(BuildConfiguration)--输出$(Build.ArtifactStagingDirectory)--无还原' zipAfterPu

我的Azure DevOps管道需要访问Azure DevOps工件源中存储的一些NuGet软件包

包源工件在
nuget.config
中定义:


并添加了
--no restore
参数。 现在它可以工作了:

-任务:DotNetCoreCLI@2
投入:
命令:发布
publishWebProjects:正确
参数:'--configuration$(BuildConfiguration)--输出$(Build.ArtifactStagingDirectory)--无还原'
zipAfterPublish:对
但是现在,
dotnet ef迁移
不起作用:
构建失败

亚马尔:

-任务:DotNetCoreCLI@2
投入:
命令:“自定义”
自定义:“ef”
参数:“迁移脚本--启动项目xxx/xxx.Portal/xxx.Portal.csproj--项目xxx/xxx.Core/xxx.Core.csproj--输出$(Build.ArtifactStagingDirectory)/SQL/migrate.SQL--上下文Dbxxx--幂等”
我尝试了
--无构建
…:

-任务:DotNetCoreCLI@2
投入:
命令:“自定义”
自定义:“ef”
参数:“迁移脚本--无生成--启动项目xxx/xxx.Portal/xxx.Portal.csproj--项目xxx/xxx.Core/xxx.Core.csproj--输出$(build.ArtifactStagingDirectory)/SQL/migrate.SQL--上下文Dbxxx--幂等”
。。。但另一个错误是:

The specified deps.json [D:\a\1\s\xxx\xxx.Portal\bin\Debug\net5.0\xxx.Portal.deps.json] does not exist
同时添加
feedsToUse
vstsFeed
输入不会改变任何内容:

-任务:DotNetCoreCLI@2
投入:
命令:“自定义”
自定义:“ef”
参数:“迁移脚本--启动项目xxx/xxx.Portal/xxx.Portal.csproj--项目xxx/xxx.Core/xxx.Core.csproj--输出$(Build.ArtifactStagingDirectory)/SQL/migrate.SQL--上下文Dbxxx--幂等”
feedsToUse:“选择”
vstsFeed:'xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

多亏了Levi Lu MSFT的评论,我修复了我的YAML,在
ef迁移之前添加了两个任务

由于Azure DevOps不允许用户在
build
ef migrations
任务中的
restore
操作上指定访问私有Azure DevOps工件源的授权,因此正确的顺序是:

  • 通过
    feedsToUser
    vstsFeed
  • 生成
    带有
    的任务--无恢复
    参数
  • ef迁移
    带有
    的任务--无生成
    参数
  • 因此,完整的YAML是:

    -任务:DotNetCoreCLI@2
    displayName:“dotnet还原”
    投入:
    命令:“还原”
    项目:“***.csproj”
    feedsToUse:“选择”
    vstsFeed:'xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
    -任务:DotNetCoreCLI@2
    投入:
    命令:“构建”
    项目:“xxx/xxx.Portal”
    参数:'--无还原'
    -任务:DotNetCoreCLI@2
    投入:
    命令:“自定义”
    自定义:“ef”
    参数:“迁移脚本--无生成--启动项目xxx/xxx.Portal/xxx.Portal.csproj--项目xxx/xxx.Core/xxx.Core.csproj--输出$(build.ArtifactStagingDirectory)/SQL/migrate.SQL--上下文Dbxxx--幂等”
    
    在dotnet任务执行dotnet ef迁移之前,您是否可以尝试添加一个dotnet任务以运行build命令来生成项目,该任务使用
    --no build
    ?现在可以运行了。我必须添加两个任务:nuget restore和build with--无恢复。谢谢现在我将尝试合理化YAML,因为我有双重任务。很好,你解决了它。您可以在应答线程中共享修复,以防有人发现它有用。