Мне нужно использовать Server класс, который хранится в Microsoft.SqlServer.Smo.dll. Я не вижу эту сборку в обычном Диалог ссылок. Я нашел его в файле C:/Program Files/Microsoft SQL Server/100/SDK/Assemblies и попытался ссылаться на него, но Visual Studio выдает сообщение об ошибке "Ссылка" C:/Program Files/Microsoft SQL Server/100/SDK/Assemblies/Microsoft.SqlServer.Smo.dll 'не удалось добавить. Убедитесь, что файл доступен и что он является допустимым компонентом сборки или COM ". Что я делаю не так?
Ссылка Microsoft.SqlServer.Smo.dll
Ответ 1
C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies
- правильное расположение папки (или C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies
в 64-битных системах).
Вам нужно добавить ссылки на:
-
Microsoft.SqlServer.ConnectionInfo.dll
-
Microsoft.SqlServer.Smo.dll
-
Microsoft.SqlServer.Management.Sdk.Sfc.dll
-
Microsoft.SqlServer.SqlEnum.dll
(Это минимальные файлы, необходимые для создания SMO-приложения)
Для SQL Server 2016 это местоположение C:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies
(для 64-битной версии).
Ref.: Как создать проект SMO Visual С# в Visual Studio.NET
Объекты управления SQL Server (SMO) могут быть загружены как часть соответствующего Feature Feature Pack для SQL Server (20XX) (проверьте мелкий шрифт как Я не верю, что они распространяются?)
Ответ 2
Вы можете попробовать этот неофициальный пакет nuget...
https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO/
Install-Package Неофициальный .Microsoft.SQLServer.SMO
Ответ 3
Я знаю, что это старый вопрос, но я столкнулся с той же проблемой. @Mitch_Wheat правильно, что, как минимум, вам нужны ссылки на 4 SMO-сборки. Однако попытаться добавить все 4 сразу, я дал вам ошибку, которую вы указали.
Добавление сборок по одному исключает ошибку.
Ответ 4
Вам нужно установить следующий пакет для решения проблемы, я решил эту проблему дважды с этим пакетом, надеюсь, что это может сработать и для всех...
Коллекция объектов управления Microsoft SQL Server 2005 Пакет Collection Objects Management включает в себя несколько ключевых элементов API управления SQL Server 2005, включая объекты управления анализом (AMO), объекты управления репликацией (RMO) и объекты управления SQL Server (SMO). Разработчики и администраторы баз данных могут использовать эти компоненты для программного управления SQL Server 2005.
Вы можете получить пакет Feature Pack для Microsoft SQL Server 2005 - декабрь 2008 г. с сайта Microsoft [http://www.microsoft.com/en-us/download/details.aspx?id=11988][1] Но местоположение ссылки страницы загрузки меняется каждый раз, если вы не найдете ресурс, который вы можете загрузить из моего блога тоже.
Я также предоставил некоторые советы и ресурсы об этом в своем блоге, если вы хотите http://rndp-android.blogspot.com/p/missing-microsoftsqlservermanagementsdk.html
Ответ 5
Для тех, кому нужна версия sql server 2014 (версия 120), вам необходимо загрузить и установить следующие пакеты от Microsoft:
- SQLSysClrTypes (x64): https://download.microsoft.com/download/1/3/0/13089488-91FC-4E22-AD68-5BE58BD5C014/ENU/x64/SQLSysClrTypes.msi
- SharedManagementObjects (x64): https://download.microsoft.com/download/1/3/0/13089488-91FC-4E22-AD68-5BE58BD5C014/ENU/x64/SharedManagementObjects.msi
Вы можете найти всю соответствующую информацию на веб-сайте Microsoft на этой странице (как правильно предложено @mitch-wheat): https://www.microsoft.com/en-gb/download/details.aspx?id=42295
Ответ 6
В том случае, если вы хотите использовать класс Backup
, добавьте Microsoft.SqlServer.Management.SmoExtended к вашему проекту.
Ответ 7
Хм. Попробуйте зарегистрировать библиотеку DLL, запустив ее в командной строке DOS (мне любопытно, почему она еще не зарегистрирована. Я попытался использовать ее в Windows, на которой был установлен SQL2008, и у вас не было проблемы)
"c:\windows\system32\regsvr32.exe C:/Program Files/Microsoft SQL Server/100/SDK/сборки/Microsoft.SqlServer.Smo.dll"
Вам нужны кавычки из-за пробелов в именах каталогов.
Если вы используете 64-битную Windows, regsvr32.exe будет в C:\windows\syswow64\
Удачи. Сообщите нам, если это не поможет. Спасибо.