Ссылка Microsoft.SqlServer.Smo.dll - PullRequest
42 голосов
/ 23 июня 2011

Мне нужно использовать класс Server , который хранится в Microsoft.SqlServer.Smo.dll. Я не вижу эту сборку в обычном диалоговом окне «Ссылки».Я нашел его в C: / Program Files / Microsoft SQL Server / 100 / SDK / Сборки и пытаюсь ссылаться оттуда, но Visual Studio выдает ошибку "Ссылка" C: / Program Files / Microsoft SQL Server / 100 / SDK /Сборки / Microsoft.SqlServer.Smo.dll не могут быть добавлены. Пожалуйста, убедитесь, что файл доступен, и что он является допустимой сборкой или компонентом COM ".Что я делаю неправильно?

Ответы [ 10 ]

80 голосов
/ 23 июня 2011

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-битной версии).

Ссылка: Как: создать SMO-проект Visual C # в Visual Studio .NET

Объекты управления SQL Server (SMO) можно загрузить как часть соответствующего Пакета возможностей SQL Server (20XX) (проверьте мелкий шрифт, так как я не считаю, что его можно распространять?)

2 голосов
/ 04 февраля 2016

Вы можете попробовать этот неофициальный пакет nuget ...

https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO/

Неустановленный инсталляционный пакет. Microsoft.SQLServer.SMO

1 голос
/ 09 октября 2015

Для тех, кому нужна версия sql server 2014 (версия 120), вам необходимо скачать и установить следующие пакеты от Microsoft:

Вы можете найти всю необходимую информацию на веб-сайте Microsoft на этой странице (как правильно предложено @ mitch-wheat): https://www.microsoft.com/en-gb/download/details.aspx?id=42295

1 голос
/ 29 февраля 2012

Я знаю, что это старый вопрос, но я столкнулся с той же проблемой.@Mitch_Wheat правильно, что как минимум вам нужны ссылки на 4 сборки SMO.Однако попытка добавить все 4 сразу дала мне ошибку, которую вы перечислили.

Добавление сборок по одной за раз обошло ошибку.

0 голосов
/ 03 мая 2018

Синхронизация по запросу по запросу в Management Studio Подключитесь к подписчику в Management Studio, а затем разверните узел сервера.

Разверните папку «Репликация», а затем разверните папку «Локальные подписки».

Щелкните правой кнопкой мыши подписку, которую вы хотите синхронизировать, и выберите Просмотр статуса синхронизации.

В диалоговом окне Просмотр состояния синхронизации -: нажмите кнопку Пуск. Когда синхронизация завершена, отображается сообщение Синхронизация завершена.

Нажмите Закрыть.

0 голосов
/ 08 февраля 2018

Вы можете использовать: https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects см. информацию об установке: https://docs.microsoft.com/nl-be/sql/relational-databases/server-management-objects-smo/installing-smo

но не знаю, можно ли это распространять ...

, поскольку речь идет только о дизайне, разработке и тестировании:

  1. УСТАНОВКА И ПРАВА НА ИСПОЛЬЗОВАНИЕ. Вы можете установить и использовать любое количество копий программного обеспечения на своих устройствах для проектирования, разработки и тестирования ваши программы.

https://docs.microsoft.com/nl-be/sql/relational-databases/server-management-objects-smo/smo-license-terms

0 голосов
/ 02 февраля 2018

Простой способ получить все 7 ddls, относящиеся к этой проблеме:

Microsoft.SqlServer.ConnectionInfo.dll,
Microsoft.SqlServer.ConnectionInfoExtended.dll,
Microsoft.SqlServer..SqlEnum.dll

Создайте отдельную console application

загрузку с использованием nuget

PM> Install-Package Microsoft.SQLServer.SMO-Версия 12.0.2000.8

собрать приложение и все dlls будут в папке bin ... вы можете скопировать оттуда и добавить reference to your existing application

https://www.nuget.org/packages/Microsoft.SQLServer.SMO/12.0.2000.8

0 голосов
/ 05 ноября 2015

В случае, если вы хотите использовать Backup класс, добавьте Microsoft.SqlServer.Management.SmoExtended в ваш проект.

0 голосов
/ 21 декабря 2012

Вам нужно установить следующий пакет, чтобы решить проблему, я решил эту проблему дважды с этим пакетом, надеюсь, он тоже может работать для всех ...

Коллекция объектов управления Microsoft SQL Server 2005 Пакет «Коллекция объектов управления» включает в себя несколько ключевых элементов 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 / р / недостающей microsoftsqlservermanagementsdk.html

0 голосов
/ 23 июня 2011

Хм.Попробуйте зарегистрировать библиотеку 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 \

Удачи,Дайте нам знать, если это не поможет .. Спасибо.

...