如何添加C#类库/类DLL在SQL CLR项目?(How do I add c# class lib

2019-10-23 01:50发布

如何添加C#类库/类DLL在SQL CLR项目?

我想补充的类库DLL / DLL类,但装配在创建过程中得到了SQL Server 2012中的错误

组件的引用组件“system.runtime.serialization,版本= 4.0.0.0,文化=中性,这是不存在于当前数据库。 SQL服务器试图找到并自动从哪里引用组件来自同一个位置加载引用的程序集,但操作失败(原因:2(该系统找不到指定的文件)。)。 请引用的程序集加载到当前数据库,并重新提出要求。

Answer 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;

摘抄:

不支持的库仍然可以从您的托管存储过程,触发器,用户定义函数,用户定义类型和用户定义聚合调用。 不支持的库必须先在SQL Server数据库中注册,使用CREATE ASSEMBLY语句,它可以在你的代码中使用了。 已注册并在服务器上运行任何不受支持的图书馆应该进行审查,对安全性和可靠性测试。

例如,不支持System.DirectoryServices命名空间。 你必须注册不安全权限System.DirectoryServices.dll程序集之前,你可以从你的代码中调用它。 因为System.DirectoryServices命名空间类不符合安全EXTERNAL_ACCESS要求不安全的许可是必要的。 欲了解更多信息,请参阅CLR集成编程模型限制和CLR集成代码访问安全性。

在SQL Server CLR集成仅支持.NET Framework库的一个子集。 在SQL Server CLR集成支持的库/命名空间是:

  • CustomMarshalers
  • Microsoft.VisualBasic程序
  • Microsoft.VisualC
  • mscorlib程序
  • 系统
  • 系统配置
  • System.Data
  • System.Data.OracleClient的
  • System.Data.SqlXml
  • System.Deployment
  • System.Security
  • System.Transactions的
  • System.Web.Services
  • 的System.Xml
  • System.Core.dll
  • System.Xml.Linq.dll


文章来源: How do I add c# class library/ class dll in SQL CLR project?
标签: c# sqlclr