in src/AzureSqlActionHelper.ts [347:377]
private static async _getSqlPackageInstalledWithSSMS(): Promise<ISqlPackageInstall> {
let sqlServerRegistryKey = path.join('\\', 'SOFTWARE', 'Microsoft', 'Microsoft SQL Server');
let sqlServerRegistryKeyWow6432 = path.join('\\', 'SOFTWARE', 'Wow6432Node', 'Microsoft', 'Microsoft SQL Server');
if (!await AzureSqlActionHelper.registryKeyExists(sqlServerRegistryKey)) {
sqlServerRegistryKey = sqlServerRegistryKeyWow6432;
if (!await AzureSqlActionHelper.registryKeyExists(sqlServerRegistryKey)) {
return this._emptySqlPackageInstall();
}
}
let subKeys = await AzureSqlActionHelper.getRegistrySubKeys(sqlServerRegistryKey);
let sqlServerRegistryKeys = this._getVersionsRegistryKeys(subKeys);
for(let registryKey of sqlServerRegistryKeys) {
let versionSpecificRootDir = await AzureSqlActionHelper.getRegistryValue(registryKey, 'VerSpecificRootDir');
if (!!versionSpecificRootDir) {
let sqlPackagePath = path.join(versionSpecificRootDir, 'Dac', 'bin', 'SqlPackage.exe');
if (fs.existsSync(sqlPackagePath)) {
let sqlPackageVersion = await this._getSqlPackageExecutableVersion(sqlPackagePath);
core.debug(`SqlPackage version ${sqlPackageVersion} (installed with SSMS) found at location: ${sqlPackagePath}`);
return {
sqlPackagePath: sqlPackagePath,
sqlPackageVersion: sqlPackageVersion
};
}
}
}
return this._emptySqlPackageInstall();
}