找不到无效的数据库平台服务在哪里配置

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

使用VS2022创建数据库项目。当代码被签入时,它不会构建,错误只是“...构建--失败。”

安装 VS2019 并重新创建项目后,构建管道很高兴。构建代理通过 sqlpackage.exe 支持以下版本的 SQL Server(由 devops 提供)。

.sqlproj 针对 AWS/RDS SQL Server 版本 2019 或 SQL 版本 2019。

构建管道会生成有效的 .dacpac 文件,管道的设置如下:

当我从代理工件 drop 中的 .dacpac 中提取 model.xml 时,配置似乎显示目标实际上是 2019 年,或者至少这似乎是 Sql150DatabaseSchemaProvider 的目标 -->

<DataSchemaModel FileFormatVersion="1.2" SchemaVersion="2.9" DspName="Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider" CollationLcid="1033" CollationCaseSensitive="False" xmlns="http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02">

执行释放时,该错误就会出现。该版本的配置如下:

这是错误:

2023-11-07T20:18:16.2038422Z *** 无法部署包。 2023-11-07T20:18:16.2040054Z 内部错误。数据库平台 服务类型 Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider 不是 有效的。您必须确保服务已加载,或者您必须提供 有效数据库平台服务的完整类型名称。

我对此错误消息的理解是 .dacpac 部署以某种方式配置或设置为 2022?或者至少尝试让该 exe 使用 Sql160DatabaseSchemaProvider 进行部署。我一直在梳理项目中的所有文件,但找不到任何设置 Schema Provider 的位置。

有人见过这个错误吗?这就像构建代理正在为 2022 年生成 .dacpac,而 devops 告诉我它只支持到 2019 年。

我已将项目设置为据我所知的所有受支持的版本,并且可以看到架构提供程序名称发生变化,并嵌入了目标版本。我希望这是一个简单的疏忽,但是我一直在转动旋钮和轻按开关,现在它已经变成了一种旋转轮子的行为。

更新:

查看构建机器的功能后,下面的设置引起了我的注意。 DACX 似乎可以将 SqlPackage 的兼容性级别设置为 SQL SERVER 2016,即使 V2019 Enterprise 已经存在。这会让我怀疑 DacFx 130 在针对 SQL Server 2019 实例时是否存在问题。另一方面,我的笔记本电脑上的本地安装有 130、140 和 150,所以也许第一个版本仅在功能下列出。

SqlPackage:C:\Program Files (x86)\Microsoft Visual Studio�9\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DACX\SqlPackage.exe

VisualStudio_16.0:C:\Program Files (x86)\Microsoft Visual Studio�9\Enterprise\

azure-devops azure-pipelines database-project dacpac
1个回答
0
投票

我笔记本电脑上的本地安装有 130、140 和 150 你本地机器上有160吗?

查看您的错误消息,“类型为 Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider 的数据库平台服务无效。” 看起来它在您的计算机上找不到正确的 SqlPackage.exe。

我按照您的步骤在我的自托管代理上进行测试,并在发布日志文件中发现了一条关键错误消息。

Dac Framework (installed with Visual Studio) not found on machine xxxxxxx
2023-11-08T08:35:31.4317748Z ##[debug]Executing command: C:\Program Files (x86)\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe 

它尝试从“ C:\Program Files (x86)\Microsoft SQL Serverh\DAC”查找 DAC,但当我检查路径时,DAC 文件夹不存在。

sql.proj

 <DSP>Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider</DSP>

在 Visual Studio 2019 中创建 sql server 数据库项目时,默认的 DatabaseSchemaProvider 为

150
。请检查 sql.proj 中 DatabaseSchemaProvider 的版本,并确保您的机器上已经安装了相应版本。

如有任何误解,请随时告诉我。

参考文档:

https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/SqlDacpacDeploymentOnMachineGroupV0/README.md

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