Пользовательские библиотеки не найдены в задании агента SQL Server 2016 - PullRequest
2 голосов
/ 23 июня 2019

У меня есть пакет ssis в SQL Server 2016, который использует пользовательскую библиотеку DLL, которую я добавил в gac. Пакет служб SSIS отлично работает в Visual Studio, но при развертывании его на SQL Server он не может найти dll frm gac.

Может кто-нибудь помочь мне, где разместить эту пользовательскую DLL?

Я добавил обработку исключений в свой скрипт задачи и сохранил журналы в текстовом файле с надписью

System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'abc, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null' или одну из ее зависимостей. Система не может найти указанный файл.

Имя файла: 'abc, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null'

at ST_7a052dcdad9e4fe18bb49852 ****. Job.runTask ()
на ST_7a052dcdad9e4fe18bb49852 ****. ScriptMain.Main ()

WRN: регистрация привязки сборки выключена.
Чтобы включить ведение журнала ошибок привязки сборки, задайте для параметра реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) значение 1.

Примечание. Некоторое снижение производительности связано с регистрацией ошибок привязки сборки. Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

1 Ответ

0 голосов
/ 24 июня 2019

Существует 2 возможных причины:

  1. 32/64-битный конфликт: Убедитесь, что режим, с которым вы работаете, относится к версии dll.Попробуйте запустить пакет в 32-разрядном режиме в задании SQL:

  2. Скопируйте зарегистрированную dll в путь сборок SQL: %ProgramFiles%\Microsoft SQL Server\<SQL Version>\SDK\Assemblies и затем зарегистрируйте ее в GAC.Также убедитесь, что это путь, указанный в пакете

Обходной путь

Использование функции AssemblyResolve:

...