Я пробовал много решений, но не работал Пожалуйста, помогите мне исправить эту проблему. Ниже приведен код, используемый в SSIS Script TaskНе удалось закрыть excel даже после освобождения ресурсов
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application xlApp = null;
Excel.Workbooks workbooks = null;
Excel.Workbook xlWorkbook = null;
Excel.Worksheet worksheet = null;
Excel.Range xlRange = null;
try
{
xlApp = new Excel.Application();
xlApp.DisplayAlerts = false;
xlApp.AskToUpdateLinks = false;
workbooks = xlApp.Workbooks;
xlWorkbook = workbooks.Open("sample.csv", 2, true);
xlWorksheet = xlWorkbook.Sheets[1];
xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
for (int row = 2; row <= rowCount; row++)
{
//some logic
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally //releasing all resources
{
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.ReleaseComObject(xlRange);
Marshal.ReleaseComObject(xlWorksheet);
xlRange = null;
xlWorksheet = null;
xlWorkbook.Close();
Marshal.ReleaseComObject(xlWorkbook);
xlWorkbook = null;
workbooks = null;
xlApp.Quit();
Marshal.ReleaseComObject(xlApp);
xlApp=null;
}
даже после освобождения ресурсов, по-прежнему видим один процесс первенствовать