Задача сценария SSIS C # Ссылка на Newtonsoft.json продолжает давать ошибку «Не удалось найти связанный компонент newtonsoft.json» - PullRequest
0 голосов
/ 28 февраля 2019

Немного расстроился.Я пытаюсь использовать библиотеку newtonsoft.json в скрипте ac # в SSIS.Я открываю решение, захожу по ссылкам и устанавливаю его через «Управление пакетами NuGet».

Когда я его устанавливаю, все хорошо, и я могу начать писать код, и я не получаю ошибок.Однако, как только я сохраняю решение и выхожу из vs обратно в ssis, если я снова его открываю, ссылка теперь имеет значок предупреждения и говорит: «Ссылочный компонент« Newtonsoft.Json »не найден» и все моикод подчеркнут красным.

Любые идеи о том, как это исправить ??

Не уверен, стоит ли это отмечать, но я не загружал / сохранял какие-либо DLL-файлы или устанавливал что-либо, кроме как в "управлении ньюгетом"пакеты "console

. Это то, что перечисляет мой package.config:

<?xml version="1.0" encoding="utf-8"?>
   <packages>
   <package id="Newtonsoft.Json" version="12.0.1" targetFramework="net45" />
   </packages>

Также не уверен, что это важно, но в файле packages.config подчеркнут первый" "синий и указывает, что «пакет» элемент не объявлен. "

1 Ответ

0 голосов
/ 20 июля 2019

Я уже делал подобные проблемы раньше.Что я сделал, так это импортировал ссылку dll Newtonsoft.Json вручную из Задачи сценария из моего решения SSIS.

После этого вам потребуется зарегистрировать его dll в GAC (Global Assembly Cache), чтобы иметь возможность загрузитьили используйте функции должным образом после запуска решения.

  public System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
    {
        if (args.Name.Contains("Newtonsoft.Json"))
        {
            string path = @"D:\Projects\FortiAnalyzer\FortiAnalyzer\FortiAnalyzer\bin\portable-net45+win8+wp8+wpa81\Newtonsoft.Json.dll";
            return System.Reflection.Assembly.LoadFile(@path);
        }
        return null;
    }

, затем в вашем Main вы должны использовать этот код для запуска загрузки dll в GAC

        //Register Reference 'Newtonsoft.Json' to GAC initially every run of this Script
        AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
...