SSIS с задачей скрипта c #, ссылающейся на пользовательскую библиотеку DLL, в пространстве имен которой есть точка

#c# #ssis

#c# #ssis

Вопрос:

У меня есть SSIS с задачей скрипта (C #). Этот пакет работает при локальном запуске (Visual Studio 2015), но не при запуске в качестве задания sql (каталог служб интеграции SSISDB). Ошибка «Задача скрипта: Ошибка: CS0246 — Не удалось найти тип или имя пространства имен ‘work’ (вам не хватает директивы using или ссылки на сборку?), ScriptMain.cs, 217, 35»

ScriptMain.cs строка 217 — это переменный процесс = новая работа.Предоставление.Provisioner (бла-бла-бла);

Ссылка на сборку присутствует в виде библиотеки dll (имя файла — work.Provision.dll ). Хороший парень, который создал эту библиотеку dll, покинул компанию. Пространство имен — «работа.Предоставление «. Может ли быть так, что SSIS сбит с толку и ожидает, что пространство имен называется «работа»?

Как мне это решить? У нас есть исходный код, и, вероятно, его нужно переработать, чтобы пространство имен было «workProvision» (удалите точку), чтобы избежать путаницы — возможно, я не знаю, я не эксперт. Имейте в виду, что все это работает, когда я запускаю его локально в Visual Studio (2015).

Большое спасибо!

Комментарии:

1. Выполняется ли это на том же сервере, где оно всегда выполняется, или пакет перемещен на новый сервер?

2. ПРИВЕТ, пакет является новым в непроизводственной среде (еще не развернут в рабочей среде)

3. Я предполагаю, что вам нужно установить пользовательскую сборку в глобальный кэш сборок нового сервера (GAC). Командная строка примерно gactutil.exe -if work.provision.dll , но сначала вам нужно выяснить, где / установлен ли gacutil

4. Я исправил это, создав DLL с помощью correct. Net framework и изменил целевой SQL-сервер проекта на правильную версию; Также внутри задачи скрипта я использовал «разрешение сборки», найденное в этой статье: weblog.west-wind.com/posts/2016/dec/12 /…