Создание пользовательской сборки в сборке SQL Server, не найденной в ошибке базы данных

Я пытаюсь создать сборку для DLL третьей стороны (разработанную в .net) в SQL Server 2008 для проекта процедуры CLR,

create assembly [`XXXX.XXX.XXX.dll`] authorization dbo from 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\XXXX.XXX.XXX.dll' with permission_set = unsafe 

Но я получаю эту ошибку при выполнении вышеуказанного скрипта:

Assembly 'XXX.XXX.XXX.XXX' reference assembly 'XXX.XXX.XXXXX', version = 0.0.0.0, culture = neutral, publickeytoken = null. ', Которого нет в текущей базе данных. SQL Server попытался найти и автоматически загрузить ссылочную сборку из того же места, откуда появилась ссылка, но эта операция потерпела неудачу (причина: 2 (система не может найти указанный файл.)). Загрузите ссылочную сборку в текущую базу данных и повторите запрос.

Я ценю вашу помощь в решении этой проблемы

Вы можете добавить Assemblies в свою базу данных, которая используется вами CLR.

Я добавил, например, System.Messaging.dll на SQL Server 2014 следующим образом

 CREATE ASSEMBLY [System.Messaging] FROM 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Messaging.dll' WITH PERMISSION_SET = UNSAFE; GO 

Он добавит необходимые другие ссылочные сборки, связанные с этим. После этого я добавил Newtonsoft.Json.dll вот так:

 CREATE ASSEMBLY [Newtonsoft.Json] FROM 'C:\Users\RiaanDL\Downloads\Json60r3\Bin\Net45\Newtonsoft.Json.dll' WITH PERMISSION_SET = UNSAFE; GO 

Не забудьте указать свой уровень разрешения SQLCLR как UNSAFE в конфигурации проекта.

Ассембли в SQL Server не могут ссылаться на сборки из GAC, если они не находятся в списке «благословленных». Этот список выглядит следующим образом:

  • mscorlib.dll
  • System.Data.dll
  • System.dll
  • system.Xml.dll
  • System.Security.dll
  • System.Web.Services.dll
  • System.Data.SqlXml.dll
  • System.Transactions.dll
  • System.Configuration.dll
  • Microsoft.VisualBasic.dll
  • Microsoft.VisualC.dll
  • CustomMarshalers.dll
  • System.Data.OracleClient.dll

Любые другие сборки должны быть созданы в SQL Server с использованием синтаксиса CREATE ASSEMBLY – даже те из самой .NET Framework, которые не указаны в списке выше.

  • Веб-службы или службы Windows или SQL CLR Integration?
  • Использование CREATEd ASSEMBLY заставляет SQL Server постоянно зависать
  • Доступ к файловой системе CLR Sql Server из UDF
  • Преимущества SQL SERVER CLR
  • Как можно использовать CLR на месте функций T-SQL, чтобы избежать RBAR?
  • Являются ли библиотеки CLR зеркалированными при использовании зеркалирования SQL Server?
  • Как вернуть nvarchar (max) в CLR UDF?
  • Является ли фактическая культура связанными SQL с CLR плавающими двойными преобразованиями?
  • Компонент скриптов SSIS с использованием CLR
  • Как обращаться к статическим методам внешних DLL, которые включают выходные параметры в SQL Server
  • Вызов хранимых процедур CLR
  • Interesting Posts

    Как вставить специальный символ в БД?

    X Количество строк в одной строке на одной колонке

    Проверить обновление поля SQL

    LEFT JOIN на двух или более таблицах

    XML-синтаксический анализ SQL Server для атрибутов первого узла

    UserManager.AddToRole не работает – ошибка внешнего ключа

    Невозможно увидеть * все * базы данных в удаленном экземпляре SQL Server

    Бесплатный экспорт схем для SQL Server 2008?

    Временно присоединить / подключиться к файлу LocalDB SQL Server

    Как получить записи через определенное время с использованием поля SQL datetime

    Запись была изменена другим пользователем при попытке отправить или изменить

    Получить идентификатор из базы данных, соответствующей нескольким именам

    Сценарий T-SQL для удаления всех отношений между кучей таблиц в схеме и другой связке в другой схеме?

    exec с пустой строкой или пробелом

    Пользователь может создавать, но не выполнять хранимую процедуру

    Давайте будем гением компьютера.