如何在SQL CLR项目中添加c#类库/类dll?
我添加了类库dll / class dll但在程序集创建期间在SQL Server 2012中出错
程序集引用程序集&system; run.runtime.serialization, version = 4.0.0.0,culture = neutral,当前不存在 数据库。 SQL Server尝试定位并自动加载 从引用程序集的相同位置引用程序集 来自,但该操作失败(原因:2(系统不能 找到指定的文件。))。请将引用的程序集加载到 当前数据库并重试您的请求。
答案 0 :(得分:1)
您必须先注册不受支持的库,然后才能使用它们。
-- You will have to use the Runtime Serialization from .NET v3
ALTER DATABASE [<<Database Name>>] SET TRUSTWORTHY ON;
CREATE ASSEMBLY AnyName_You_Want
FROM
--'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Runtime.Serialization.dll'
'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.Runtime.Serialization.dll'
WITH PERMISSION_SET = UNSAFE;
摘录:
仍然可以从托管存储中调用不受支持的库 过程,触发器,用户定义的函数,用户定义的类型和 用户定义的聚合。必须首先是不受支持的库 使用 CREATE ASSEMBLY 在SQL Server数据库中注册 声明,在它可以在您的代码中使用之前。任何不受支持的库 应该检查并测试在服务器上注册和运行的内容 为了安全和可靠。
例如,不支持 System.DirectoryServices 命名空间。 您必须注册System.DirectoryServices.dll程序集 UNSAFE 权限,然后才能从代码中调用它。 UNSAFE 许可是必要的,因为在 System.DirectoryServices 命名空间不符合要求 SAFE 或 EXTERNAL_ACCESS 。有关更多信息,请参阅CLR集成 编程模型限制和CLR集成代码访问 安全
CLR integration in SQL Server仅支持.NET Framework库的子集。 SQL Server中CLR集成支持的库/命名空间是: