gpt4 book ai didi

.net - 如何说服sql server 2008r2使用clr v4.0而不是v2.0?

转载 作者:行者123 更新时间:2023-12-02 16:27:38 25 4
gpt4 key购买 nike

我有sql server 2008r2。根据我的互联网研究,它支持.net Framework 4.0。我尝试使用 sql clr 函数安装程序集,但收到错误。

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

查询

select * from sys.dm_clr_properties

给出结果:

directory C:\Windows\Microsoft.NET\Framework64\v2.0.50727\

version v2.0.50727

CLR is initialized

我检查 C:\Windows\Microsoft.NET\Framework64\以确定并找到 v4.0.30319 文件夹。因此,.net v4.0 已安装。

所以,我需要更改用于 sql 的 CLR 版本。我试过了

sp_configure 'clr enabled', 0;
GO
RECONFIGURE;
GO

sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO

这没有帮助。我尝试添加 sqlservr.exe.config 内容

<configuration>
<startup>
<requiredRuntime version="v4.0"/>
</startup>
</configuration>

复制到 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn 文件夹并重新启动 sql server。它也没有帮助。

我知道创建注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\OnlyUseLatestCLR 并将其设置为 1 的选项。它可能会破坏其他解决方案,所以我害怕在生产中使用它。

有什么建议如何说服 sql server 使用 clr v4.0 吗?

所以,答案是 - 哪里没有办法做到这一点。

就我而言,我将目标框架降低到 3.5 并排除了一些 clr 函数。

最佳答案

你不能。在 an article Doug Holland 在 2010 年发布,解释了旧版本的 SQL Server(直至并包括 2008 R2)使用 LockClrVersion调用以将可以加载的.NET版本限制为最新的2.0版本。

要使用 .NET 4.0,您必须使用 SQL Server 2012 及更高版本

关于.net - 如何说服sql server 2008r2使用clr v4.0而不是v2.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30892463/

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