【发布时间】:2021-01-02 20:37:36
【问题描述】:
我正在尝试将 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, version=4.2.0.0,culture=neutral, publickeytoken=cc7b13ffcd2ddd51.”,当前数据库中不存在。 SQL Server 尝试从引用程序集所在的同一位置定位并自动加载引用程序集,但该操作失败(原因:版本、区域性或公钥不匹配)。请将引用的程序集加载到当前数据库中,然后重试您的请求。
当所有引用的 DLL 都可用时,为什么会出现此错误?
【问题讨论】:
-
@DaleK 我的问题是为什么我应该得到这个错误?DLL 在文件夹内
-
@DaleK,理论上你是正确的。但是,如果您从文件路径创建程序集,并且所有引用的 dll 都在路径中,则 SQL 会手动将它们引入。我们可以争论你是否应该这样做,我会说不是 - 但对于一个快速而肮脏的测试它是有效的。
标签: sql-server dll .net-assembly sqlclr