繁体   English   中英

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

[英]How do I add c# class library/ class dll in SQL CLR project?

如何在SQL CLR项目中添加c#类库/类dll?

我添加了类库dll /类dll,但是在程序集创建期间SQL Server 2012中出现错误

程序集引用程序集'system.runtime.serialization,版本= 4.0.0.0,区域性=中性,当前数据库中不存在。 SQL Server尝试从引用程序集所在的位置查找并自动加载引用的程序集,但该操作失败(原因:2(系统找不到指定的文件。))。 请将引用的程序集加载到当前数据库中,然后重试您的请求。

您必须先注册不受支持的库,然后才能使用它们。

-- 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命名空间。 必须先使用UNSAFE权限注册System.DirectoryServices.dll程序集,然后才能从代码中调用它。 UNSAFE权限是必需的,因为System.DirectoryServices命名空间中的类不满足SAFEEXTERNAL_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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM