Plate-forme cible du projet Visual Studio Database dans le profil de publication

Est-il possible pour moi de spécifier la plate-forme cible (SQL Server 2014, SQL Server 2016, Azure, etc) dans un profil de publication? J'ai un projet de database que je déploie parfois sur une instance SQL Server 2016 locale et d'autres fois sur une database Azure SQL. Je voudrais simplement spécifier deux profils de publication différents et faire en sorte que la plate-forme cible soit modifiée à la volée à ce moment-là. Est-ce possible?

Azure, MSSQL 2014, MSSQL 2016 ont des limitations et des exigences différentes pour Database Project.

Imaginons: vous utilisez FILESTREAM dans MSSQL 2014 et l'utiliserez dans MSSQL 2016. Et votre FILESTREAM est décrit dans Database Project. Maintenant, vous ajoutez le support Azure dans votre solution et souhaitez déployer la database. Mais, Azure ne prend pas en charge FILESTREAM.

Vous ne pouvez donc pas avoir un projet de database dans ce cas. Vous devez sélectionner un projet cible minimal pris en charge:

Dans ce cas, il s'agit de Microsoft Azure SQL Databse (ou V12). Lorsque vous select une plate-forme cible minimale prise en charge, vous pouvez être sûr que toutes les versions "supérieures" le supporteront.

Supposons qu'Azure soit un sous-set de fonctionnalités MSSQL Server. Et Database Project valide toutes les fonctionnalités à l'aide de la plate-forme cible.

Si vous avez peur de sélectionner Microsoft Azure SQL Databse comme plateforme cible, vous ne pourrez pas publier sur MSSQL Server 2016 – cela ne fonctionnera pas.

Si vous devez utiliser différentes strings de connection ou publier des parameters, créez différents profils de publication.

Vous pouvez utiliser msbuild et rebuild pour générer dacpac. Nous pouvons changer la plate-forme cible dans le projet en utilisant PowerShell pour faire de manière automatisée.

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean 

De là, nous pouvons faire un deployment dacpac avec le profil de publication.