Добавление библиотеки iTextSharp для использования с хранимыми процедурами CLR

Кому-нибудь повезло создать сборку для iTextSharp для использования с хранимыми процедурами CLR? Я пытался весь день и не смог получить никаких результатов. Студия управления SQL говорит, что мне нужно сначала зарегистрировать system.drawing (не может быть новой версией, не должна быть старой версией), но у меня возникают проблемы, когда я пытаюсь запустить ее создание безопасно и небезопасно.

Так что мне просто интересно, кому-нибудь повезло с настройкой iTextSharp для работы через CLR SPROCS? Причина, по которой я хочу это сделать, заключается в том, что тогда я смогу намного легче передавать параметры и генерировать отчеты (CLR SPROC содержит стандартные статические элементы, а параметры могут управлять динамическими параметрами).

Спасибо за любую помощь

2 ответа

Зарегистрируйте эти сборки на сервере:

CREATE ASSEMBLY [System.Drawing] FROM
  'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll'
  WITH PERMISSION_SET = UNSAFE

CREATE ASSEMBLY [System.Windows.Forms] FROM
  'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll'
  WITH PERMISSION_SET = UNSAFE

CREATE ASSEMBLY [itextsharp] FROM
  'C:\MY_CLR\itextsharp.dll'
  WITH PERMISSION_SET = UNSAFE

Затем вы можете найти ссылку на itextsharp в диалоговом окне Добавить ссылку (вкладка SQL Server)

Это работает (VS2010, C#, SQLServer2005, itextsharp5.0)

Вам не нужен System.Windows.Forms.dll, как предполагает другой ответ.
Просто добавьте эти 2 ссылки в ваш проект Visual Studio:

  1. System.Drawing.dll
  2. itextsharp.dll

Удостоверьтесь, что обе эти DLL-библиотеки ссылаются на ваш проект.
Затем в свойствах этих двух ссылочных DLL установите для свойства " Model Aware " значение " True "
Что-то в этом едва документированном свойстве автоматически развернет вашу ссылочную сборку.

Перестройте свой проект (обязательно сделайте это, иначе вы можете увидеть ошибку) и попробуйте Deploying.
Он должен автоматически добавить эти 2 ссылки в виде сборок в базу данных SQL.
После добавления он, по крайней мере, достаточно умен, чтобы не удалять и снова добавлять их при последующих повторных развертываниях.

ПРИМЕЧАНИЕ. После этого происходит сбой каждый раз, когда я пытаюсь развернуть свой проект.
Я не знаю, почему это так, но я готов с этим смириться (я использую VS2013).


ВНИМАНИЕ: я столкнулся с этой ужасной ошибкой:

Ошибка ALTER ASSEMBLY, потому что ссылочные сборки будут изменены. Список сборок, на который делается ссылка, должен оставаться неизменным.

Если это произойдет, вам нужно отбросить всю сборку, потому что что-то в развертывании приводит к тому, что часть сборки остается неизменной и не обновляет внешние ссылки, а вместо этого выдает эту загадочную / неиспользуемую ошибку.

В итоге я удалил все зависимости и сборку в моем PreDeployScript.sql. Таким образом я избегаю проблем на любом Сервере, на котором я разверну свою сборку SQL (или когда я добавляю новые ссылки).

Другие вопросы по тегам