在单步执行Excel互操作代码时,为什么在Visual Studio 2010中调试速度超慢?

时间:2013-12-13 18:31:23

标签: vb.net visual-studio-2010 excel

为了解决这个问题,我已经发布了这个问题和解决方法。我想接受一个实际定量描述问题的答案。

我使用VS2010和VB.NET进行一些办公室编程。我发现在VBA上使用VB.NET可以为办公自动化任务提供更好的用户体验。但是,VB.NET IDE有时候并不是一直在调试Excel COM互操作代码时停止运行,比如设置一个等于cell的值的字符串需要5分钟,或者只需要删除和添加断点就需要几分钟。这一直是我存在的祸根,因为我必须重新启动计算机才能修复它,但我终于找到了因果关系和解决方法。当我在COM服务器之外打开了多个其他Excel实例时,就会发生这种情况。我知道Excel通常只打开一个EXCEL.EXE,但是,我有我的注册表设置,以便每个excel文档在一个新实例中打开,这样我就可以在不同的监视器上查看单独的文档。我不相信这种情况并不常见。因此,当我打开Excel并且我的应用程序启动Excel COM服务器并进入调试器时,这就是问题发生的时候,但也只有在启动COM服务器后我在其中一个Excel中单击或操作。然后它就像COM服务器在一个Skittles包中变得混乱,它在我重新启动计算机之前无法离开。那么,有没有人有足够的调试,COM和Interop专业知识告诉我是什么导致这个调试地狱?并且可能是一种抢占它的方法吗?

1 个答案:

答案 0 :(得分:0)

要解决此问题而不重新启动,我发现我可以结束EXCEL.EXE的所有实例,甚至是COM服务器,然后关闭IDE,然后直接重新打开Excel而不关闭文档并关闭它。现在,重新打开IDE,运行代码,开始调试,并且步进延迟不存在或可忽略不计。