我有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?
你不能 在道格·霍兰德(Doug Holland)在2010年发表的一篇文章中,解释了SQL Server的较早版本(直到并包括2008 R2)使用LockClrVersion调用来限制可加载到最新2.0版本的.NET版本。
要使用.NET 4.0,您将必须使用SQL Server 2012及更高版本
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句