0

我一直试图测试一个在SQL Server 2014上构建的项目(DB,SSIS,SSAS)是否与SQL Server 2012R2兼容。我得装在dacpac格式.dproj,当我尝试从CMD运行这个命令:使用VS2012解包和构建SQL Server 2014项目sqlpackage.exe

sqlpackage.exe /Action:Script /SourceFile:"Project.dacpac" /TargetDatabaseName:DBName /TargetServerName:"DBName /p:BlockOnPossibleDataLoss=false /p:RegisterDataTierApplication=true /p:BlockWhenDriftDetected=false /OutputPath:Logs\Output.sql 

,我收到了以下错误:

*** Could not deploy package. Internal Error. The database platform service with type Microsoft.Data.Tools.Sch ema.Sql.Sql120DatabaseSchemaProvider is not valid. You must make sure the servic e is loaded, or you must provide the full type name of a valid database platform service.

我创建了一个虚拟机在Azure与SQL Server安装了R2 SP3。除此之外,我安装了VS 2012的数据工具。我猜测这可能是兼容性问题,但也许有一个解决方法,而不需要将DT更改为更高版本?任何可以应用的补丁?

+0

你可以解释为什么你会做这样的事情,当ssdt的后续版本免费提供? –

+0

这是一个很好的问题,应该向我的一位非常坚持2012年的客户提出问题。我只是想知道是否有一种方法可以在不升级的情况下实现。 – PRHMN

回答

0

您可以安装更新的dacfx(sqlpackage),也可以将DAC文件夹从更新版本复制到部署计算机并使用该sqlpackage.exe实例进行部署。

你也可以在项目本身中设置属性来定位sql 2012,它会验证t-sql对于2012是否正确,并让你部署到它。

在sqlpackage 2012和2014之间有很多修复,所以我会将它们移到较新版本的sqlpackage上,即使您仍然以2012的sql框为目标。

这只是为dacpacs,不知道其他项目。