相关疑难解决方法(0)

如何正确清理Excel互操作对象?

我在C#(ApplicationClass)中使用Excel互操作,并在我的finally子句中放置了以下代码:

while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }
excelSheet = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)

虽然这种工作,Excel.exe即使我关闭Excel后,该过程仍然在后台.只有在我的应用程序手动关闭后才会发布.

我做错了什么,或者是否有其他方法可以确保互操作对象得到妥善处理?

c# excel interop com-interop

733
推荐指数
20
解决办法
30万
查看次数

无法在参考列表中找到Microsoft.Office.Interop.Word

由于我不知道如何将MS Word与C#集成,因此我得到了解决我遇到的问题的解决方案:http://www.dotnetperls.com/word

我查看了这个解决方案,我找不到Microsoft.Office.Interop.Word参考列表.我也无法在COM Objects下找到它.我错过了什么?我正在使用Visual Studio Express 2012.

编辑:

这个问题的答案是你必须在你的计算机上安装MS Office.

c# ms-word ms-office visual-studio-express visual-studio-2012

20
推荐指数
4
解决办法
5万
查看次数