¿Cómo liberar correctamente los recursos de objetos COM de Excel Interop en C#?
¡Hola a todos! Estoy escribiendo una pequeña aplicación en C# para trabajar con Excel a través de Microsoft.Office.Interop.Excel. Me encontré con un problema: después de ejecutar el código, el proceso Excel.exe permanece en el administrador de tareas y no finaliza, incluso cuando llamo explícitamente a Quit() y Marshal.ReleaseComObject().
Aquí hay un ejemplo de mi código:
using Excel = Microsoft.Office.Interop.Excel;
public void ExportToExcel()
{
var excelApp = new Excel.Application();
excelApp.Visible = false;
var workbook = excelApp.Workbooks.Add();
var worksheet = workbook.Worksheets[1] as Excel.Worksheet;
worksheet.Cells[1, 1] = "Hello";
worksheet.Cells[1, 2] = "World";
workbook.SaveAs(@"C:\test.xlsx");
workbook.Close();
excelApp.Quit();
Marshal.ReleaseComObject(worksheet);
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(excelApp);
}
Después de ejecutar este método, el proceso de Excel sigue colgado. He probado diferentes opciones: ex