C#Excel工作簿已closures,但无法移动该文件

我正在打开一个Excel文件

app = new Microsoft.Office.Interop.Excel.Application(); wb = app.Workbooks.Open(fromFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

然后我操纵细胞,这工作正常。 我将文件保存到antother文件夹,比我打开它。

 wb.SaveAs(toFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges, false, Type.Missing, Type.Missing, true); 

我closures了应用程序和工作簿:

 wb.Close(true, Type.Missing, Type.Missing); app.Quit(); 

当我现在想通过File.Move()移动原始文件时,出现错误:

该进程无法访问该文件,因为正在被另一个文件使用

处理。

我错过了什么吗?

编辑:

非常感谢你们。 这是对象的错误释放。

 Marshal.FinalReleaseComObject(object) 

编辑2:

那么,但现在我可以运行一次,现在我总是得到错误:

此文件当前不可用于此计算机上。

结合一个COMException

被调用的对象已经与客户端断开连接。

你需要使用

 Marshal.ReleaseComObject(Object_to_be_released) 

用于互操作服务中使用的所有对象。

 _xlApp.Quit(); Marshal.ReleaseComObject(_xlApp); 

在将excel文件从源文件夹移动到目标文件夹之前,您需要释放所有与excel文件相关的参考。 你想发布的参考文献在Grand Crofton给出的答案中列出请参考他的回答: 如何发布excel过程?