SQL Server 2008中的程序集依赖性

时间:2017-04-18 08:07:48

标签: sql-server sqlclr

当我注册程序集System.ServiceModel.dll时,我收到此警告消息:

Registering System.ServiceModel.dll

之后我尝试注册Microsoft.Transactions.Bridge.dll并收到此警告:

Registering Microsoft.Transactions.Bridge.dll

1 个答案:

答案 0 :(得分:0)

您尝试从哪些目录/文件夹中提取这些DLL?您只需要创建 ServiceModel 程序集。这将要求将数据库设置为TRUSTWORTHY ON,并将程序集创建为UNSAFE

话虽如此,鉴于你所建造的非常有限的性质,你最好找到一种完全不同的方法。 SQLCLR是一个非常受限制的环境,不允许混合模式组件;只允许纯MSIL程序集。在.NET Framework版本2.0,3.0和3.5中, ServiceModel 库是纯MSIL,因此导入它确实有效。但是,从.NET Framework v 4.0开始, ServiceModel 更改为混合模式DLL,因此无法从SQL Server 2012开始导入SQL Server(即要链接的第一个SQL Server版本)到CLR v 4.0,它通过当前的4.7使用.NET Framework 4.0版(我认为))。除了重新编写代码之外没有任何修复,不再引用 ServiceModel 。有关详细信息,请在此处查看我的答案:

(Unfixable) Assembly exists on SQL Server 2014 but it claims it doesn't have it