Сборки SQL SMO не развертываются при публикации - PullRequest
12 голосов
/ 25 августа 2011

У меня небольшая проблема с развертыванием ряда сборок, связанных с SMO.У меня есть следующие 5 ссылок в моем проекте:

enter image description here

Каждый из них представляет собой .dll в папке библиотеки, откуда ссылки были добавлены, и для каждого установлен параметр Копировать локально= правда.Файл проекта показывает, что все по порядку, например:

<Reference Include="Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
  <HintPath>..\Libraries\Microsoft.SqlServer.Smo.dll</HintPath>
  <Private>True</Private>
</Reference>

Проблема в том, что при каждой публикации из Visual Studio на моем компьютере сборки не копируются.То же самое, когда я публикую через TeamCity (на котором определенно не установлен SQL Server или SMO ​​SDK).Я могу скопировать сборки вручную, и все работает нормально (без зависимости от GAC), но, очевидно, я хотел бы включить это в процесс развертывания.

Что может помешать этим сборкам опубликовать?

Ответы [ 2 ]

12 голосов
/ 25 августа 2011

Я полагаю, что вы не должны просто копировать DLL при развертывании приложения на основе SMO. См. Эту ссылку: Распространение приложения, использующего объекты управления SQL Server . Я цитирую:

Если вы разрабатываете приложение, которое использует объекты управления SQL Server, Вы должны убедиться, что необходимые файлы поддержки присутствуют на компьютер с приложением. Пакет возможностей SQL Server 2008 содержит распространяемый пакет для управления SQL Server Объекты.

Вам нужно получить SharedManagementObjects.msi по этой ссылке для скачивания: http://www.microsoft.com/download/en/details.aspx?id=16978

2 голосов
/ 22 октября 2013

Сотрудник Microsoft Моника Ривера в потоке MSDN подтвердила, что можно связать библиотеки DLL с вашим приложением:

Вот еще один способ.Вы можете включить необходимые библиотеки DLL в свою сборку из проекта VS.Если вы выберете ссылку в проекте и измените Свойство «Копировать локальное» на True, соответствующая DLL будет включена в сборку.

Итак, согласно потоку MSDN, оба решения хороши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...