| Author: |
Carlos J. Quintero (Microsoft MVP) |
Applies to: |
Microsoft Visual Studio 2005 |
| Date: |
February 2007 |
|
|
| |
|
|
|
Introduction
When using a macro or add-in in VS 2005 to capture the
EnvDTE.SolutionEvents.BeforeClosing event of the extensibility model, the event
is raised even when there is no solution loaded (and therefore there is no
solution being closed).
Cause
This is a bug of Visual Studio 2005.
More Information
Steps to reproduce the problem:
- Open the Macros IDE, go to the EnvironmentEvents file and add this code:
Sub SolutionEvents_AfterClosing() Handles SolutionEvents.AfterClosing
MsgBox("SolutionEvents_AfterClosing")
End Sub
Private Sub SolutionEvents_BeforeClosing() Handles SolutionEvents.BeforeClosing
If DTE.Solution.IsOpen Then
MsgBox("SolutionEvents_BeforeClosing")
Else
MsgBox("BUG: there is no solution open to launch the BeforeClosing event")
End If
End Sub
- Go back to the main IDE and close the current loaded solution (if
any). Load a solution from the Recent Projects menu. You get a
SolutionEvents_BeforeClosing event when no solution was open, and therefore
there is no solution to be closed. The event should not be raised in this
case. This did not happen In VS.NET 2003.
Go back to the 'Resources for Visual Studio .NET extensibility' section for more articles like this
|