SQL Server目标平台dacpac无法发布至Microsoft Azure SQL v12
解决Azure SQL DB部署Dacpac时的目标平台不兼容错误
核心问题分析
你遇到的错误本质是项目的目标平台配置与Azure SQL Database不匹配,即便手动切换了SQL Server 2012/2016/2019等版本仍报错,是因为配置未真正生效,或发布流程中存在误操作。
分步解决方案
修正项目目标平台配置
- 右键数据库项目 → 属性 → 目标平台,直接选择
Microsoft Azure SQL Database(不要选本地SQL Server的版本),Azure SQL有独立的目标平台选项,和本地版本不直接对应。 - 保存配置后,重新生成整个项目,再生成快照——快照依赖项目当前配置,旧配置未更新的话,快照仍会沿用SQL Server 2014的设置。
- 右键数据库项目 → 属性 → 目标平台,直接选择
清理并重新生成快照
- 删除项目Snapshots文件夹下所有旧的
.dacpac文件,避免发布时误加载旧文件。 - 重新右键项目生成新的快照,确保新文件是基于更新后的目标平台生成的。
- 删除项目Snapshots文件夹下所有旧的
修正发布目标连接
- 发布数据层应用时,必须选择已连接的Azure SQL Server实例,而非本地的
(localdb)\ProjectsV13——你当前的发布连接字符串指向的是LocalDB(VS自带的本地开发数据库),这是关键错误。 - 关于
ProjectsV13:这只是Visual Studio用于本地开发的轻量级LocalDB实例,和Azure SQL的版本标识无关,完全不能用于Azure SQL的发布操作。
- 发布数据层应用时,必须选择已连接的Azure SQL Server实例,而非本地的
验证Dacpac的目标版本(可选)
用SqlPackage.exe工具检查Dacpac的目标平台:SqlPackage.exe /Action:Extract /SourceFile:你的快照文件名.dacpac /TargetFile:output.xml打开生成的
output.xml,查找TargetPlatformVersion节点,确认值为Azure SQL对应的版本(而非SQL Server 2014)。
为什么之前成功现在失败?
大概率是某次项目配置变更后未正确保存生效,或生成快照时仍使用了旧配置;也可能是发布时误选了LocalDB作为目标,而非Azure SQL实例。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

