【发布时间】:2020-05-28 21:52:45
【问题描述】:
VS 2019 中的 SSDT 项目有一个目标平台,它在构建时指定 bacpac 的目标数据库版本:
对于本地开发,这是正确的,但在持续交付设置中,我们希望以 Azure 数据库为目标,这是一个不同的选项。尝试发布为 SQL Server 2017 构建的 bacpac 文件会导致错误
A project which specifies SQL Server 2017 as the target platform cannot be published to Microsoft Azure SQL Database v12.
发生这种情况是因为,我认为,在 bacpac model.xml 文件中有一行
<DataSchemaModel FileFormatVersion="1.2" SchemaVersion="2.9" DspName="Microsoft.Data.Tools.Schema.Sql.Sql140DatabaseSchemaProvider" CollationLcid="1033" CollationCaseSensitive="False" xmlns="http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02">
DspName 指的是 SQL Server 2017。
是否有传递给 msbuild 的选项,这将导致它为不同的 Azure SQL 数据库目标构建 bacpac?
我尝试使用发布配置文件并在从 Azure 数据库创建 ci.publish.xml 时指定 /p:SqlPublishProfilePath="Ci.publish.xml",但这不会影响 bacpac 的创建。事实上,ci.publish.xml 文件只包含一个数据库名称和连接字符串,与版本无关。
【问题讨论】:
-
发布配置文件中还有“允许不兼容的平台”选项。这可能会解决您的问题
标签: azure-devops msbuild azure-sql-database sql-server-data-tools