Ответ 1
Microsoft SQL Server не допускает CLR смешанного режима. Смысл, он статически связан с конкретной версией CLR (это не то же самое, что .NET Framework, что большинство людей путают его). SQL Server 2005, 2008 и 2008 R2 связаны с CLR версии 2.0, которая обрабатывает версии 2.0, 3.0 и 3.5.NET Framework, в то время как SQL Server 2012 и 2014 связаны с CLR версии 4.0, которая обрабатывает версии .NET Framework 4.0, 4.5. x, 4.6.x и т.д.
Вы можете:
- Перекомпилируйте, используя нижнюю версию рамки, но если вы используете функциональные возможности, запущенные в .NET Framework версии 4.0 или выше, это не сработает. Использование .NET Framework 2.0 всегда является самой безопасной ставкой для SQL Server 2005 - 2008 R2. Если вам нужно использовать .NET Framework 3.0 или 3.5 для функциональности, которая не находится в версии 2.0 (а не в списке поддерживаемых библиотек .NET Framework), вам также необходимо будет зарегистрировать соответствующую библиотеку .NET Framework 3.0/3.5 в SQL Server как
UNSAFE
, и для этого требуется установить параметр базы данных дляTRUSTWORTHY
вON
(который лучше всего оставить какOFF
, если это вообще возможно). - Перейдите на SQL Server 2012, 2014 или 2016.
Более подробную информацию по теме ньюансов .NET в SQL Server (например, SQLCLR) см. в следующей статье, которую я написал в SQL Server Central, если не всю серию:
Stairway to SQLCLR Уровень 5: Разработка (использование .NET в SQL Server) (бесплатная регистрация требуется на этом сайте)