You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline生成EF Core迁移脚本时缺失.deps.json文件报错

问题

在Azure Pipeline中配置EF Core迁移脚本生成任务时,已通过MSBuild任务以Release配置完成构建,但Generate EF SQL Script任务仍尝试读取Debug目录下的deps.json文件,导致报错:

The specified deps.json [C:\__w\1\s\HR Taxonomy Change Management\bin\Debug\net6.0\HR Taxonomy Change Management.deps.json] does not exist

当前Pipeline关键配置:

  • 构建任务(MSBuild@1)已指定configuration: 'release'
  • EF脚本生成任务(DotNetCoreCLI@2)设置了configuration: 'release'但未生效
原因

DotNetCoreCLI@2任务的configuration输入参数仅对build、publish等内置命令生效,对于ef这类自定义命令,该参数不会自动传递给底层的dotnet ef命令,导致ef工具默认读取Debug配置的构建输出路径。

规范解决方案

以下两种方法均为官方推荐的规范解决方式,无需复制文件:

方法1:在ef命令参数中显式指定Release配置

直接在arguments里添加--configuration Release参数,让ef工具明确读取Release目录的构建产物:

- task: DotNetCoreCLI@2
  displayName: 'Generate EF SQL Script'
  inputs:
    command: 'custom'
    custom: 'ef'
    arguments: 'migrations script --no-build --verbose --configuration Release --project "$(Build.SourcesDirectory)\HR Taxonomy Change Management\HR Taxonomy Change Management.csproj" --output $(Build.SourcesDirectory)\script.sql --idempotent'

注意:移除原配置中无效的configuration: 'release'行,同时修正项目路径的转义问题,直接用双引号包裹带空格的路径即可。

方法2:通过环境变量传递MSBuild属性

设置MSBuildConfiguration环境变量,让ef工具继承Release配置:

- task: DotNetCoreCLI@2
  displayName: 'Generate EF SQL Script'
  inputs:
    command: 'custom'
    custom: 'ef'
    arguments: 'migrations script --no-build --verbose --project "$(Build.SourcesDirectory)\HR Taxonomy Change Management\HR Taxonomy Change Management.csproj" --output $(Build.SourcesDirectory)\script.sql --idempotent'
  env:
    MSBuildConfiguration: Release
验证要点
  • 确保MSBuild构建任务的clean: true配置已启用,避免残留Debug环境的obj文件干扰ef工具的路径解析
  • 检查ef命令的--no-build参数:因为已提前完成Release构建,该参数可跳过重复构建,提升效率

内容的提问来源于stack exchange,提问作者USMC6072

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:43:32