2017-05-23 4 views
-1

J'appelle les API DacServices pour déployer des DACPAC, ce qui nécessite une référence d'assembly de Microsoft.SqlServer.Dac. La machine cible sur laquelle je lance mon installateur peut avoir SSDT/SQL installé sur le lecteur D ou peut-être une version plus élevée de SQLServer pourrait être installée. Comment puis-je obtenir dynamiquement le chemin du fichier d'assemblage Microsoft.SqlServer.Dac sur la machine cible lors de l'utilisation de DacServices pour le déploiement (Nous aurions le même problème si nous utilisions SqlPackage.exe car je devais rechercher dynamiquement le 120/DAC/bin ou 130/DAC/bin dossier sur la cible où je lance mon installateur)?Obtention du chemin de fichier de l'assembly SqlServer Dac sur la machine cible lors de l'utilisation de DacServices pour le déploiement

Ou si quelqu'un peut proposer une autre solution à ce problème afin que le même exe puisse fonctionner de différentes machines/environnements, ce serait génial.

Répondre

0

Les versions modernes de DacFramework.msi indiquent l'emplacement d'installation dans le registre sous HKLM \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Data-Tier Application Framework \ InstallLocation.

Toutefois, il est préférable d'inclure les assemblys DacFramework dans votre programme d'installation et d'appeler ce code. Data-Tier Application Framework est concédé sous licence par Microsoft en tant que code "redistribuable".

+0

Merci pour ce Steve! Impossible d'obtenir le dossier Emplacement d'installation pour 2014 et 2016 sur nos machines à l'aide de HKLM \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ Data-Tier Application Framework \ InstallLocation. Je vois un DACFramework sous Microsoft SQL Server, mais il n'a pas un emplacement d'installation –

+0

Pour la version x86 (32 bits) de DacFramework.msi, vous pouvez vérifier HKLM \ SOFTWARE \ WOW6432Node \ Microsoft \ Microsoft Application SQL Server \ Data-Tier Framework \ InstallLocation –