gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 04:43:46 25 4
gpt4 key购买 nike

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

SQL 代码:

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

错误信息:

CREATE ASSEMBLY for assembly 'ElasticSearch' failed because the assembly is built for an unsupported version of the Common Language Runtime.

最佳答案

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(或更新版本)。

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

Stairway to SQLCLR Level 5: Development (Using .NET within SQL Server)

关于c# - 使用 .net framework 4.0 在 sql server 2008 中创建的 dll 创建 CLR 存储过程。显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25051809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com