Visual Studio:在调试停止时执行清理代码

Jul*_*n N 8 c# debugging visual-studio

我们开发了一个使用Excel互操作库(Microsoft.Office.Interop.Excel)来读取一些Excel文件的应用程序.

当应用程序中出现问题时,将处理事件Application.ThreadException,因此将释放资源(Excel已关闭...).

问题是,当我们使用VS调试器时,如果我们停止执行(因为进程在异常或断点上中断,有很多原因导致我们这样做),资源不会被释放而Excel会停留打开.当然,下次启动应用程序时......由于文件上有锁,它会崩溃.

所以我正在寻找一种强制释放Excel对象的方法,即使在使用调试器停止时也是如此.

有什么建议吗?

Sha*_*men 14

您可以使用DTE(VisualStudio自动化模型)编写将在停止调试发生时调用的宏,下面是该想法的片段.

Private Sub DebuggerEvents_OnEnterBreakMode(
   ByVal Reason As EnvDTE.dbgEventReason, 
   ByRef ExecutionAction As EnvDTE.dbgExecutionAction) Handles DebuggerEvents.OnEnterBreakMode
    If (Reason = dbgEventReason.dbgEventReasonStopDebugging) Then
        // DO YOUR CLEAN UP CODE HERE
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 很伤心,VS 2012+中没有宏. (3认同)