使用Solver加载项时,Excel应用程序在后台运行

我正在开发一个.NET应用程序,它打开一个工作簿,运行一些VBAmacros,刷新连接等等。这很好,但是当我运行一些使用Solver加载项函数的VBAmacros时,即使在我重新发布所有COM对象正确(调用'Marshal.ReleaseComObject')。

我该如何解决?

编辑:

这里是一个重现此问题的代码示例:

Excel.Application xlApp = null; Excel.Workbooks xlWorkbooks = null; try { xlApp = new Excel.Application(); xlApp.Visible = true; xlApp.DisplayAlerts = false; xlWorkbooks = xlApp.Workbooks; Excel.Workbook xlWorkbook = xlWorkbooks.Open(Filename: path, ReadOnly: false); xlApp.Run(macro); xlWorkbook.RefreshAll(); xlWorkbook.Close(SaveChanges: true); xlApp.Quit(); releaseObject(xlWorkbook); releaseObject(xlWorkbooks); releaseObject(xlApp); } catch (Exception e) { Console.WriteLine("Erro ao executar métodos Excel"); Console.WriteLine(e.Message); } 

在这里我实现的function来释放COM对象:

 static void releaseObject(object o) { try { if (o != null) Marshal.ReleaseComObject(o); } catch { o = null; } }