0

J'ai un projet de base de données dans Visual Studio 2013 que j'utilise pour créer un fichier dacpac et le déployer sur les serveurs SQL en utilisant SQL Server Management Studio. Je peux déployer avec succès le dacpac sur SQL Server 2012, mais lorsque je tente de le déployer sur SQL Server 2008 R2, je reçois le message d'erreur suivant lors de la sélection du package DAC:Problème déploiement dacpac sur SQL Server 2008 R2 créé à l'aide de la base de données VS13 projet

<DacType xmlns='http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02'> was not expected. (es3ttafd) 

J'ai choisi « SQL Server 2008 » en tant que plateforme cible sous les paramètres du projet, mais cela ne semble pas modifier l'espace de noms. Quand je déballe le dacpac, je peux voir que cet espace de noms existe dans les fichiers DacMetadata.xml, model.xml et Origin.xml.

Y a-t-il quelque chose que je peux faire pour arrêter d'inclure cet espace de noms dans le dacpac (ou le changer pour le bon?) Afin de me permettre de le déployer sur SQL Server 2008? Je peux publier le projet avec succès via VS sur le serveur SQL mais je veux être capable de créer un paquet dac et de le déployer sur d'autres serveurs, en utilisant l'assistant.

Merci.

Répondre

1

Je suppose que vous utilisez une ancienne version de SQL Server Management Studio pour déployer sur SQL Server 2008. Je suggère de télécharger le dernier SSMS (disponible ici: https://msdn.microsoft.com/en-us/library/mt238290.aspx) et de l'utiliser pour publier.

Alternativement, la version la plus récente du cadre d'application-Tier données (disponible ici: https://www.microsoft.com/en-us/download/details.aspx?id=53876) comprend SqlPackage.exe, qui peut être utilisé pour publier un fichier dacpac, comme ceci:

SqlPackage.exe /a:publish /tcs:"Data Source=SERVER;Initial Catalog=DBNAME;Integrated Security=true" /sf:C:\project\mydb.dacpac 

documentation Voir pour SqlPackage.exe ici: https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx

+0

Merci Steven. J'ai essayé d'utiliser SSMS16 et cela a fonctionné. J'avais essayé SSMS14 avant de poster ici mais cela ne fonctionnait toujours pas alors j'ai supposé que cela n'avait rien à voir avec la version de SSMS mais avec la sortie du projet DB de VS. N'y a-t-il pas un correctif pour l'espace de noms DacType qui est créé comme cela à partir de VS (bien que la plate-forme cible soit définie sur SQL Server 2008)? – Kyris

+0

Bon d'entendre que ça fonctionne maintenant. Je ne suis pas sûr pourquoi SSMS 2014 donnerait une erreur à propos de cet espace de noms XML. Le contexte est que les outils SQL Server 2008 ont produit des fichiers dacpac dont le format de fichier est différent des outils SQL Server 2012 (et plus récents). Les anciens outils ne reconnaissent pas le nouveau format de fichier, mais SSMS 2014 ne devrait pas avoir de problème avec le format de fichier dacpac produit par VS2013. –