【发布时间】:2023-03-16 16:35:01
【问题描述】:
我有 sql server 2008r2。根据我的互联网研究,它支持.net framework 4.0。我尝试使用 sql clr 函数安装我的程序集并收到错误。
为程序集“MyAssembly”创建程序集失败,因为程序集 是为不受支持的公共语言运行时版本构建的。
查询
select * from sys.dm_clr_properties
给出结果:
目录 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
版本 v2.0.50727
CLR 已初始化
我检查 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 函数。【问题讨论】:
-
You can't,它被锁定在代码中以使用最新版本的.NET 2.0
-
关于“根据我的互联网研究它支持.net framework 4.0”,什么研究?哪里有人说 SQL Server 2008 R2 可以将 CLR v4 用于 SQLCLR? SQL Server 2008 R2 附带了一些使用 CLR v4 的工具,但这与 SQLCLR 中的功能不同。
标签: .net sql-server sql-server-2008-r2 sqlclr