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

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

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

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


person CSharpProgrammer    schedule 09.08.2010    source источник


Ответы (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)

person efarkas    schedule 25.10.2010

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

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

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

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

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


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

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

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

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

person MikeTeeVee    schedule 26.10.2016