首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序集'System.Threading.Channels‘引用程序集'system.threading.tasks.extensions,v’,它在当前数据库中不存在。

程序集'System.Threading.Channels‘引用程序集'system.threading.tasks.extensions,v’,它在当前数据库中不存在。
EN

Stack Overflow用户
提问于 2020-09-16 03:49:06
回答 1查看 430关注 0票数 0

我试图在Server中添加一个DLL:

代码语言:javascript
复制
CREATE ASSEMBLY ClassLibrary1
AUTHORIZATION dbo
FROM 'C:\Debug\ClassLibrary1.dll'
WITH PERMISSION_SET = UNSAFE
GO

你可以在这里看到我的DLL

但我知道这个错误:

程序集'System.Threading.Channels‘引用程序集'system.threading.tasks.extensions,version=4.2.0.0,culture=neutral,publickeytoken=cc7b13ffcd2ddd51.',它不存在于当前数据库中。Server试图从引用程序集所在的相同位置定位和自动加载引用程序集,但该操作失败(原因:版本、区域性或公钥不匹配)。请将引用的程序集加载到当前数据库中,然后重试请求。

当所有引用的DLL都可用时,为什么我会收到这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-16 04:14:40

嗯,有意思--你创建程序集的方式--扩展dll应该是自动创建的。

几件事:

  • 我想您已经手动将所有dll复制到您的目录中了。如果是这样,请确保dll的版本是正确的,即通道dll使用的扩展版本是目录中的扩展版本。
  • 也可能是扩展不能在SQL中作为程序集创建,因为并非所有clr都被允许。尝试手动创建扩展dll,然后是通道dll。

有些dll很难部署到数据库中,这是有原因的--因此,您可能会问自己,是否可以在数据库之外完成您想要使用dll做的事情。每当我看到dll引用System.Threading和System.Memory时,我都会感到担心。

哦,我知道你想做什么--你想叫兔子,我想你在使用最新的兔子客户端dll。我有一个模糊的回忆,后来的dll不能部署到SQL中。事实上,我曾在2017年写过一篇关于如何做到这一点的博文。看一看这篇文章,看看它是否对你有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63912833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档