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

使用SqlAzureDacpacDeployment执行SQL文件时遇参数互斥错误

解决SqlAzureDacpacDeployment@1任务"Query与InputFile互斥"及Invoke-Sqlcmd重复执行问题

问题根源

这个错误的核心是SqlAzureDacpacDeployment@1任务同时接收到了Query和InputFile(对应任务参数里的SqlFile)两个互斥参数,导致任务两次调用Invoke-Sqlcmd——一次执行Query内容,一次执行指定SQL文件,触发参数冲突报错。

具体解决步骤

  1. 清理任务配置中的互斥参数

    • 如果是UI配置:确保"Query"输入框完全清空,不要留任何空格或默认内容;仅在"SQL Script"选项中指定你的EF Core迁移SQL文件路径。
    • 如果是YAML配置:删除所有包含Query的参数行,只保留SqlFile参数指向你的迁移脚本,示例如下:
      - task: SqlAzureDacpacDeployment@1
        displayName: '执行EF Core迁移脚本'
        inputs:
          azureSubscription: '你的Azure订阅名'
          AuthenticationType: 'azureServicePrincipal'
          ServerName: 'xxx.database.windows.net'
          DatabaseName: '你的数据库名'
          SqlFile: '$(System.DefaultWorkingDirectory)/路径/to/你的迁移脚本.sql'
          AdditionalArguments: '-AccessToken $(sqlAccessToken)'
      
  2. 确认任务Action类型匹配
    在任务配置中,将Action(YAML中为SqlTaskAction)明确设置为RunSqlScript,避免任务默认触发Query执行逻辑。

  3. 排查额外参数干扰
    检查任务的"Additional Arguments"(YAML中为AdditionalArguments),确保没有添加-Query相关的参数,避免任务误解析出Query内容。

  4. 通过日志定位重复执行源头
    查看任务的详细运行日志,找到两次Invoke-Sqlcmd的完整命令行,确认哪部分配置触发了额外的Query执行(比如是否有前置任务传递了名为Query的变量,被任务自动识别为参数)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:17:14