Как убедить sql server 2008r2 использовать clr v4.0 вместо v2.0?
у меня есть sql server 2008r2. Согласно моим интернет-исследованиям, он поддерживает .net framework 4.0. Я попытался установить свою сборку с функциями SQL clr и получил ошибку.
создать сборку для сборки "MyAssembly" не удалось, так как сборка построен для неподдерживаемой версии среды выполнения Common Language.
запрос
select * from sys.dm_clr_properties
дает результат:
C:WindowsMicrosoft.NETFramework64v2.0.50727версия V2.0.50727
CLR инициализируется
Я проверяю C:WindowsMicrosoft.NETFramework64 чтобы быть уверенным и найти v4.0.30319 папка где. Итак, .net v4.Установлен 0.
Итак, мне нужно изменить версию CLR, используемую для sql. Я пытался!--4-->
sp_configure 'clr enabled', 0;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
Это не помогло. Я попытался добавить sqlservr.исполняемый.config с содержанием
<configuration>
<startup>
<requiredRuntime version="v4.0"/>
</startup>
</configuration>
к C:Program ФайлыMicrosoft SQL ServerMSSQL10_50.ПапкуMSSQL на Биннmssqlserver и перезапустить SQL сервер. Это тоже не помогло.
Я знаю о опции с созданием раздела реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkOnlyUseLatestCLR и установка его в 1. Он может сломать другие решения, поэтому я боюсь использовать его на производстве.
где любые предложения, как убедить sql server использовать clr v4.0?
Итак, ответ - где нет пути сделать его.
в моем случае я понизил целевую структуру до 3.5 и исключил некоторые функции clr.1 ответов
ты не можешь. В статьи опубликовано Doug Holland в 2010 объясняется, что более старые версии SQL Server (до и включая 2008 R2) используют LockClrVersion вызов для ограничения версии .NET, которая может быть загружена до последней версии 2.0.
для использования .NET 4.0 вам придется использовать SQL Server 2012 и выше