如何解决程序集“ System.Threading.Channels”引用了程序集“ system.threading.tasks.extensions,v”,该程序在当前数据库中不存在
我正在尝试将DLL添加到SQL Server:
CREATE ASSEMBLY ClassLibrary1
AUTHORIZATION dbo
FROM 'C:\Debug\ClassLibrary1.dll'
WITH PERMISSION_SET = UNSAFE
GO
您可以在这里看到我的DLLs
但是我得到这个错误:
程序集'System.Threading.Channels'引用程序集'system.threading.tasks.extensions,版本= 4.2.0.0,区域性=中性,publickeytoken = cc7b13ffcd2ddd51。”,当前数据库中不存在。 SQL Server试图从引用程序集所在的位置查找并自动加载引用程序集,但该操作失败(原因:版本,区域性或公钥不匹配)。请将引用的程序集加载到当前数据库中,然后重试您的请求。
为什么所有引用的DLL都可用时出现此错误?
解决方法
嗯,很有趣-您创建扩展名dll的程序集的方式应该已经自动创建。
事物的结合:
- 我假设您已将所有dll手动复制到目录中。如果 因此请确保dll的版本正确,即 dll使用的扩展版本是您拥有的版本 目录。
- 也可能是无法将扩展名创建为 SQL中的汇编,因为不是所有的clr dll都被允许。尝试创建 手动扩展dll,然后添加频道dll。
有些原因很难将某些dll部署到数据库中-因此,也许要问自己是否可以从db之外完成对dll的处理。每当我看到dll引用System.Threading和System.Memory时,我都会感到担心。
哦,我明白了您想做什么-您想调用Rabbit,并且我假设您正在使用最新的Rabbit客户端dll之一。我有一个模糊的回忆,以后的dll无法部署到SQL。实际上,我早在2017年就写过一篇有关如何执行此操作的博客文章。Have a look at the post,看它是否对您有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。