Как убедить 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 и выше