powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / CLR сборка с использованием внешней библиотеке
13 сообщений из 13, страница 1 из 1
CLR сборка с использованием внешней библиотеке
    #39790450
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь создать CLR функцию на основе свое библиотеки, но которая использует стороннюю библиотеку, назовем ее EXTERNAL.DLL
При попытке создать сборку получаю ошибку Assembly EXTERNAL.DLL was not found in the SQL catalog.
Про какой именно каталог идет речь? EXTERNAL.DLL прописана в GAC, я скидывал ее в SYSTEM32, но ошибка не пропадает.

Куда нужно скопировать внешнюю библиотеку, чтобы ее можно было использовать в моей сборке?
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790451
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаю с EXTERNAL_ACCESS
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790601
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

вам нужно также пролить вашу external.dll от которой зависит ваша сборка на Sql server.

При этом есть большая доля вероятности что проливка external.dll уже потребует набора разрешений unsafe.
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790610
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

что значит пролить? C Unsafe проблемы нету
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790621
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452что значит пролить?Сделать CREATE ASSEMBLY
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790628
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvglex452что значит пролить?Сделать CREATE ASSEMBLY
Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790630
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452alexeyvgпропущено...
Сделать CREATE ASSEMBLY
Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?Хм, вы же создаёте сборку из dll, зачем вам исходники?

Вот, например, подобное обсуждение: https://dba.stackexchange.com/questions/81277/assembly-system-web-version-4-0-0-0-culture-neutral-publickeytoken-b03f5f7f1
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790632
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvglex452пропущено...

Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?Хм, вы же создаёте сборку из dll, зачем вам исходники?

Вот, например, подобное обсуждение: https://dba.stackexchange.com/questions/81277/assembly-system-web-version-4-0-0-0-culture-neutral-publickeytoken-b03f5f7f1
Я все время считал что перед методом должно быть прописано [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
чтобы он был доступен в sql
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790633
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И мне не совсем понятно, почему сервер не видит dll когда она прописана в GAC?
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790634
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Разве я могу сделать CREATE ASSEMBLY для сторонней DLL к исходникам которой у меня нет доступа?Что вообще делает CREATE ASSEMBLY?
Она добавляет сборку к DOT.NET хосту, который встроен в SQL Server. Он же сам хостит DOT.NET, только частично пользуясь соотв. инфраструктурой, установленной в винды (точнее, в установленный хост фреймворка).

Ряд стандарных сборок туда уже добавлен изначально (допустим, System.Data), но многих нет, и уж тем более сторонних, не микрософтовских.
Совершенно необязательно в этой сборке должны быть, например, CLR функции, это просто DOT.NET сборки, и исходный код тем более не нужен.
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790635
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452И мне не совсем понятно, почему сервер не видит dll когда она прописана в GAC?Потому что сервер имеет свою виртуальную машину dot.net, он не использует ту, которую вы установили сами.

Это нужно для того, что бы dot.net виртуальная машина работала внутри процесса ядра Data base Engine, вначе как быстро выполнять CLR изнутри ядра? Делать Out-Of-Process вызовы миллионы раз при выполнении запроса?
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790636
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

То есть все необходимые библиотеки можно добавить через create assembly и они будут видеть друг друга?
...
Рейтинг: 0 / 0
CLR сборка с использованием внешней библиотеке
    #39790642
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452alexeyvg,

То есть все необходимые библиотеки можно добавить через create assembly и они будут видеть друг друга?Да.
Но вы почитайте обсуждение по ссылке, вроде могут быть и трудности.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / CLR сборка с использованием внешней библиотеке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]