【发布时间】:2019-03-19 17:52:20
【问题描述】:
我在 SQL Server 2014 中添加程序集 dll 时遇到问题。我尝试创建这样的程序集存储过程
CREATE ASSEMBLY pdf_create FROM 'dll path\test.dll' WITH PERMISSION_SET = SAFE
SQL Server 返回此错误:
程序集 'test' 引用程序集 'system.drawing, version=2.0.0.0,culture=neutral, publickeytoken=b03f5f7f11d50a3a.',当前数据库中不存在。 SQL Server 尝试从引用程序集所在的同一位置定位并自动加载被引用程序集,但该操作失败(原因:2(Не удается найти указаный файл.))。请将引用的程序集加载到当前数据库中,然后重试您的请求。
如果你有任何想法请帮忙
【问题讨论】:
-
test.dll取决于system.drawing。您需要在添加test.dll之前将system.drawing添加到SQL Server。 -
为什么首先要依赖 System.Drawing?即使您设法加载它,它也很容易泄漏 GDI+ 对象。该 dll 旨在在 Windows 窗体应用程序上绘制图像,而不是用于服务器端图像处理。 It was never meant for multi-threaded applications。 Web 项目使用 ImageSharp 代替
-
@PanagiotisKanavos 有时别无选择。例如。我们必须导入
System.Drawing,因为ZXing库的.NET端口依赖于它,我们使用它在服务器端生成条形码,我们必须在服务器端这样做,因为Crystal Reports要么忽略图像字段不是来自数据库,或者在尝试显示时崩溃(由于其他原因,我们被某个不是很新的 Crystal Reports 版本卡住了)。 -
@GSerg 网站有同样的问题,他们不使用 System.Drawing。此外,您不需要 ZXing 或 System.Drawing 来生成条形码,至少是常见的 EAN13。您可以使用条形码字体将数字显示为条形码
标签: sql-server sql-server-2014 sqlclr