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

 z漫步云端j 发布于 2022-12-31 13:14

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

SQL代码:

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

错误信息:

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

Solomon Rutz.. 22

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服务器as UNSAFE和这样做需要为TRUSTWORTHYto 设置数据库选项ON(最好OFF尽可能保留).

升级到SQL Server 2012,2014或2016.

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

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

1 个回答
  • 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服务器as UNSAFE和这样做需要为TRUSTWORTHYto 设置数据库选项ON(最好OFF尽可能保留).

    升级到SQL Server 2012,2014或2016.

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

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

    2022-12-31 13:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有