在SQL Server 2014中添加dll时出错。CLR问题

时间:2018-10-15 10:14:53

标签: sql-server sql-server-2014 sqlclr

我在SQL Server 2014中添加程序集dll时遇到问题。我尝试创建这样的程序集存储过程

CREATE ASSEMBLY pdf_create FROM 'dll path\test.dll' WITH PERMISSION_SET = SAFE

SQL Server返回此错误:

  

程序集“测试”引用程序集“ system.drawing,版本= 2.0.0.0,区域性=中性,publickeytoken = b03f5f7f11d50a3a”,该组件在当前数据库中不存在。 SQL Server试图从引用程序集所在的位置查找并自动加载引用的程序集,但是该操作失败(原因:2(Неудаетсянайтиуказанныйфайл。))。请将引用的程序集加载到当前数据库中,然后重试您的请求。

有什么想法请帮助

1 个答案:

答案 0 :(得分:1)

所以问题是,为什么您需要在SQLCLR程序集中依赖system.drawing.dll?我将查看test.dll的代码,并尝试摆脱这种特定的依赖关系。

如果绝对需要包括system.drawing.dll,您可以做的是将其复制并放置到与您尝试从中创建程序集的dll相同的目录中,因为SQL Server会自动从依赖项创建程序集程序集,如果它们在同一路径中。

但是,如果这样做,则可能需要更改创建的程序集的权限集,因为(如果我没记错的话)system.drawing.dll需要的权限集比SAFE小。

总而言之,尝试摆脱依赖关系,这样可以为您省去很多麻烦。