我在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(Неудаетсянайтиуказанныйфайл。))。请将引用的程序集加载到当前数据库中,然后重试您的请求。
有什么想法请帮助
答案 0 :(得分:1)
所以问题是,为什么您需要在SQLCLR程序集中依赖system.drawing.dll
?我将查看test.dll
的代码,并尝试摆脱这种特定的依赖关系。
如果绝对需要包括system.drawing.dll
,您可以做的是将其复制并放置到与您尝试从中创建程序集的dll相同的目录中,因为SQL Server会自动从依赖项创建程序集程序集,如果它们在同一路径中。
但是,如果这样做,则可能需要更改创建的程序集的权限集,因为(如果我没记错的话)system.drawing.dll
需要的权限集比SAFE
小。
总而言之,尝试摆脱依赖关系,这样可以为您省去很多麻烦。