0

J'ai essayé de tester si un projet (DB, SSIS, SSAS) construit sur SQL Server 2014 sera compatible avec SQL Server 2012R2. J'ai un .dproj emballé au format dacpac et lorsque je tente de faire exécuter par cmd:Décompresser et construire le projet SQL Server 2014 avec VS2012 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 

Je reçois une erreur suivant:

*** 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.

J'ai créé une machine virtuelle sur Azure avec SQL Server R2 SP3 installé. En dehors de cela, j'ai installé des outils de données pour VS 2012. Je suppose que cela pourrait être un problème de compatibilité, mais peut-être qu'il existe une solution de contournement sans changer DT à une version supérieure? Tout patch pouvant être appliqué?

+0

Pouvez-vous expliquer pourquoi vous feriez une telle chose lorsque des versions ultérieures de ssdt seront disponibles gratuitement? –

+0

C'est une excellente question, qui devrait être posée à l'un de mes clients qui persiste à vouloir persister jusqu'en 2012. J'essaie simplement de déterminer s'il existe un moyen de le faire sans mise à niveau. – PRHMN

Répondre

0

Vous pouvez installer un dacfx plus récent (sqlpackage) ou copier le dossier DAC d'une version plus récente vers l'ordinateur de déploiement et utiliser cette instance de sqlpackage.exe pour le déploiement.

Vous pouvez également définir les propriétés dans le projet lui-même pour cibler sql 2012 et valider que le t-sql est correct pour 2012 et vous permettre de le déployer.

Il y avait beaucoup de correctifs entre sqlpackage 2012 et 2014 donc je les déplacerais vers une nouvelle version de sqlpackage même si vous ciblez toujours une boîte de 2012 sql.

Ceci est seulement pour les dacpacs, pas sûr des autres projets.