繁体   English   中英

使用sql server 2008中.net framework 4.0创建的dll创建CLR存储过程。显示错误

[英]Create CLR stored procedure using the dll created by .net framework 4.0 in sql server 2008. Is shows error

我正在使用以下代码创建CLR存储过程。 我正在创建程序集。 它显示了以下问题。 我的目标框架是4.0。 sql server是2008 r2

SQL代码:

create assembly SampleSearch from 'E:\CLR Files\Sample\ElasticSearch.dll'

错误信息:

程序集“ElasticSearch”的CREATE ASSEMBLY失败,因为程序集是为不支持的公共语言运行时版本构建的。

Microsoft SQL Server不允许混合模式CLR。 这意味着,它静态链接到特定版本的CLR(这与.NET Framework不同,大多数人都把它混淆了)。 SQL Server 2005,2008和2008 R2链接到处理.NET Framework版本2.0,3.0和3.5的CLR 2.0版,而SQL Server 2012和2014链接到处理.NET Framework 4.0,4.5的CLR 4.0版。 x,4.6.x等

你可以:

  • 使用较低的框架版本重新编译,但如果您使用的是在.NET Framework 4.0或更高版本中启动的功能,那么这将无效。 使用.NET Framework 2.0始终是SQL Server 2005 - 2008 R2最安全的选择。 如果您需要将.NET Framework 3.0或3.5用于不在2.0中的功能(而不是在受支持的.NET Framework库列表中),那么您还需要在SQL中注册相应的.NET Framework 3.0 / 3.5 DLL服务器作为UNSAFE ,这样做需要将TRUSTWORTHY的数据库选项设置为ON (如果可能的话,最好保留为OFF )。
  • 升级到SQL Server 2012,2014或2016。

有关SQL Server中的.NET细微差别(即SQLCLR)主题的更多详细信息,请参阅我在SQL Server Central上编写的以下文章,如果不是整个系列:

SQLCLR的阶梯级别5:开发(在SQL Server中使用.NET) (该站点需要免费注册)

坏消息是你无法做到这一点。 SQL 2008支持V2.0

将目标框架设置为2.0,然后再试一次。

暂无
暂无

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

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