部署Visual Studio生成的dacpac到Azure SQL Database遇Sql160错误
解决Dacpac部署到Azure SQL Database时的Sql160DatabaseSchemaProvider错误
- 升级SSMS版本:SSMS 18对SQL Server 2022对应的Sql160数据库架构提供器支持不足,直接升级到SSMS 19.x版本,该版本原生适配SQL Server 2022和Azure SQL的Dacpac部署需求。
- 更新DACFx框架:检查本地安装的Microsoft SQL Server Data-Tier Application Framework(DACFx)版本,需确保为16.x及以上。旧版本无法识别Sql160DatabaseSchemaProvider,可通过控制面板查看当前版本,下载对应最新版本覆盖安装。
- 调整项目目标平台:若暂时无法升级SSMS,将SQL项目的目标平台切换为Azure SQL Database(而非SQL Server 2022或Azure SQL Managed Instance),重新生成Dacpac后再尝试部署,规避平台类型不匹配问题。
- 使用SqlPackage命令行部署:绕开SSMS的限制,直接用SqlPackage.exe执行部署命令,示例:
确保使用的是SQL Server 2022版本的SqlPackage,默认路径为SqlPackage.exe /Action:Publish /SourceFile:"C:\路径\你的项目.dacpac" /TargetConnectionString:"Server=tcp:你的服务器名.database.windows.net,1433;Initial Catalog=目标库名;User ID=用户名;Password=密码;Encrypt=True;"C:\Program Files\Microsoft SQL Server\160\DAC\bin。 - 修复SSMS组件:若升级SSMS后问题依旧,在控制面板找到Microsoft SQL Server Management Studio,选择“更改”->“修复”,重新加载缺失的架构提供器组件。
内容的提问来源于stack exchange,提问作者Alejo Villores
相关产品推荐
相关产品推荐

