使用 Visual Studio 构建错误 SQL71006 的 Azure DevOps 构建管道

问题描述 投票:0回答:1

我们目前在构建管道中使用 RedGate 和 Azure DevOps。我正在使用 Visual Studio Build 创建一个新的构建管道。构建抛出错误 SQL71006“每批仅允许一个语句。语句之间可能需要批分隔符,例如“GO”。”

失败的sql是一个CREATE TABLE,之后有一个CREATE NONCLUSTERED INDEX - 两者之间没有GO。如果我在两者之间添加 GO 就可以了。然而,我们当前使用 RedGate 的管道不会因这段代码而失败。

有没有办法告诉 Visual Studio Build 忽略这个错误?如果我们无法更新,我们有数千个文件需要更新。

azure-devops msbuild
1个回答
0
投票

有没有办法告诉 Visual Studio Build 忽略这个错误?

不确定您的项目结构。但我们可以使用

ContinueOnError
属性来忽略 MSBuild 任务中的错误。有关详细信息,请参阅忽略任务中的错误

如果您在管道中使用 VSBuild 任务,我们可以启用 control 选项

continueOnError: true
”,如下所示:

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: 'xxxx'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
  continueOnError: true

如果这对您不起作用,并且 SQL 脚本不需要包含在构建过程中,那么您可以更改项目文件并将脚本的

Build Action
属性设置为
None

例如:

  <ItemGroup>
    <Build Include="Tables\Customer.sql" />
    <None Include="Scripts\RunPostScriptsGenerated.sql" />
  </ItemGroup>

更新:

当将受影响的 SQL 脚本的

Build Action
属性设置为
Build
时,我可以重现该问题。详情请看截图。

当我将

Build Action
属性更改为
None
后,一切都按预期工作。

因此,请尝试使用 Visual Studio 在本地构建项目,以确定哪些文件需要更改属性。然后将所有受影响文件的

Build Action
属性更改为
None
。之后再试一次,看看它是否在管道中工作。

© www.soinside.com 2019 - 2024. All rights reserved.