Как мне установить Microsoft.SQLServer.SqlManagementObjects (SMO) для SQL 2017 без Visual Studio?

#smo

#smo

Вопрос:

Вот сценарий, мы устанавливаем Microsoft Dynamics 365 (ранее CRM) v9 на Prem в SQL 2017. RTM совместим только с SQL 2016, но начиная с обновления 0.03 он поддерживает SQL 2017. Используя сценарий установки, я могу установить последнее обновление (0.22) во время установки, но установщик устанавливает только компоненты SQL для SQL 2016, а не 2017. Поэтому при его использовании я получаю ошибки об отсутствующем типе CLR и SMO для Sql 2017. Я смог установить тип CLR с помощью пакета функций SQL 2017, но они удалили SMO из этого, его можно установить только через пакет Nuget в Visual Studio из того, что я вижу.

Я бы предпочел не устанавливать Visual Studio на наши веб-серверы Dynamics 365 только для получения этого пакета. Я обнаружил, что установил SSMS 18, который добавил его, но, опять же, я бы предпочел не устанавливать какие-либо инструменты разработки на веб-серверах только для получения SMO. Есть ли у кого-нибудь другие варианты удовлетворения этого требования? Я попробовал несколько сценариев PowerShell, которые предположительно должны были его установить, но ничего не сработало.

Спасибо.

Ответ №1:

Если у вас есть как администратор, так и веб-доступ к целевому хосту, вы можете просто установить SMO через диспетчер пакетов PowerShell:

 Install-Package Microsoft.SqlServer.SqlManagementObjects -Version 161.44091.28
  

Кроме того, вы можете загрузить пакет NuGet вручную с:

https://www.nuget.org/api/v2/package/Microsoft.SqlServer .SqlManagementObjects/161.44091.28

переместите его "-o$env:ProgramFilesPackageManagementProviderAssemblies" и зарегистрируйтесь с помощью:

 Register-PSRepository -Name "SMO" -SourceLocation "location" -InstallationPolicy Trusted
Install-Module SMO