Добавление библиотеки 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:
- System.Drawing.dll
- itextsharp.dll
Удостоверьтесь, что обе эти DLL-библиотеки ссылаются на ваш проект.
Затем в свойствах этих двух ссылочных DLL установите для свойства " Model Aware " значение " True "
Что-то в этом едва документированном свойстве автоматически развернет вашу ссылочную сборку.
Перестройте свой проект (обязательно сделайте это, иначе вы можете увидеть ошибку) и попробуйте Deploying.
Он должен автоматически добавить эти 2 ссылки в виде сборок в базу данных SQL.
После добавления он, по крайней мере, достаточно умен, чтобы не удалять и снова добавлять их при последующих повторных развертываниях.
ПРИМЕЧАНИЕ. После этого происходит сбой каждый раз, когда я пытаюсь развернуть свой проект.
Я не знаю, почему это так, но я готов с этим смириться (я использую VS2013).
ВНИМАНИЕ: я столкнулся с этой ужасной ошибкой:
Ошибка ALTER ASSEMBLY, потому что ссылочные сборки будут изменены. Список сборок, на который делается ссылка, должен оставаться неизменным.
Если это произойдет, вам нужно отбросить всю сборку, потому что что-то в развертывании приводит к тому, что часть сборки остается неизменной и не обновляет внешние ссылки, а вместо этого выдает эту загадочную / неиспользуемую ошибку.
В итоге я удалил все зависимости и сборку в моем PreDeployScript.sql. Таким образом я избегаю проблем на любом Сервере, на котором я разверну свою сборку SQL (или когда я добавляю новые ссылки).