Memory leaks 卸载VSCOM Excel加载项不会释放占用的内存

Memory leaks 卸载VSCOM Excel加载项不会释放占用的内存,memory-leaks,vsto,Memory Leaks,Vsto,我已经使用VSTO为Excel创建了一个COM加载项,我正在卸载加载项,但不知何故Excel进程并没有释放加载项初始化期间占用的内存 在.NET对象上调用Dispose()函数,然后将其设为null,然后调用GC.Collect(),GC.WaitForPendingFinalizers(),但它会为该特定对象释放少量内存,但不会为Excel进程在加载项初始化期间消耗的公共内存释放内存,即使我使用了以下选项 封送。最终电子文件对象(工作表) Marshal.finalEleaseComObjec

我已经使用VSTO为Excel创建了一个COM加载项,我正在卸载加载项,但不知何故Excel进程并没有释放加载项初始化期间占用的内存

在.NET对象上调用Dispose()函数,然后将其设为null,然后调用GC.Collect(),GC.WaitForPendingFinalizers(),但它会为该特定对象释放少量内存,但不会为Excel进程在加载项初始化期间消耗的公共内存释放内存,即使我使用了以下选项

封送。最终电子文件对象(工作表)

Marshal.finalEleaseComObject(Globals.ThisAddIn.Application.ActiveWorkbook)

即使我关闭了工作簿,但与excel关联的内存没有释放。Excel进程似乎需要刷新内存,但不需要这样做


欢迎任何建议

外接程序是如何部署的,或者您是在通过Visual Studio运行时得到的?部署使用的是Visaul Studio部署(.msi和setup)文件,现在是内存释放的问题,因为我正在通过Visual Studio运行。您是否在整个项目中使用全局变量?如果是,请查看是否正确处理了此问题…全局变量在加载项级别使用,如Globals.ThisAddIn.Application.ActiveWorkbook等。在我的情况下,我使用Appversion检查office的当前版本。此外,这还用于使用designer.cs文件中的if-else循环更新选项卡文本(大写-2013或小写-2010)…请确保在designer.cs文件中没有功能区的任何此类逻辑。。。