установите newtonsoft в глобальный кэш сборок для использования в задаче сценария SSIS

#c# #ssis #json.net #gac

#c# #ssis #json.net #gac

Вопрос:

Я использую newtonsoft dll для анализа данных json в задаче сценария SSIS. Это работает, как и ожидалось, на моем локальном компьютере, но при развертывании на SQL Server и запуске из задания SQL Server выдает ошибку :

«Целью вызова было вызвано исключение»

Я пытаюсь установить библиотеку dll newtonsoft в глобальный кэш сборки. Для этого мне нужно установить Newtonsoft на сервер, например, сохранить его в каталоге C. Затем установите его в глобальный кэш сборок с помощью gacutil.

  C:Newtonsoft.Json.12.0.3libnet45Newtonsoft.Json.dll
    
 gacutil /i Newtonsoft.Json.dll
 

В задаче скрипта C # код ссылается на dll, как показано ниже?

 static ScriptMain()
{
    AppDomain.CurrentDomain.AssemblyResolve  = new ResolveEventHandler(CurrentDomain_AssemblyResolve);           
}

static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{          
    string path = @"C:Newtonsoft.Json.12.0.3libnet45";
    return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "Newtonsoft.Json.dll"));
}
 

Ответ №1:

Вам не нужно устанавливать его в GAC, если вы используете отражение, вам просто нужно убедиться, что DLL находится по тому же пути на сервере, на который вы ссылаетесь в своем коде

C:Newtonsoft.Json.12.0.3libnet45