2016-07-29 17 views
0

Я пытался получить следующий простой код работает, но он поднимает и исключение на using (var excelPackage = new ExcelPackage(finfo))переименования Excel лист в SSIS с помощью EPPlus

 string filepath = Convert.ToString(Dts.Variables["User::FileFullPath"].Value); 


     if (File.Exists(filepath)) 
     { 
      FileInfo finfo = new FileInfo(filepath); 

      MessageBox.Show(filepath); 
      try 
      { 
       using (var excelPackage = new ExcelPackage(finfo)) 
       { 
        ExcelWorksheet ws = excelPackage.Workbook.Worksheets[0]; 
        ws.Name = "Sheet1"; 
        excelPackage.Save(); 
       } 
      } 
      catch(Exception ex) 
      { 
       MessageBox.Show(ex.StackTrace, "Error", MessageBoxButtons.OK); 
       Dts.Events.FireError(1, "Check File Status", ex.StackTrace, "", 0); 
      } 
      Dts.TaskResult = (int)ScriptResults.Success; 
     } 
     else 
     { 
      Dts.TaskResult = (int)ScriptResults.Failure; 
     } 

Ошибка:

enter image description here

По комментируя некоторые строки, я решил, что ошибка находится на линии using (var excelPackage = new ExcelPackage(finfo)). Может кто-то сказать, что я делаю неправильно здесь, или как лучше получить более подробное исключение?

ответ

0

У меня была такая же проблема с SSIS.

Вам нужно добавить сборку EPPlus.dll в глобальный кэш сборок (GAC)

Узел EPPlus.dll не доступен для вашего кода, пока вы не добавите его в GAC, используя один из следующих способов.

См. Эту ссылку о том, как добавить DLL в GAC. http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/105432/

+0

Я лично использовал Менеджер GAC: https://gacmanager.codeplex.com/, и это сработало для меня хорошо. – gaganKapula

 Смежные вопросы

  • Нет связанных вопросов^_^