Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Happy new year everyone! Here's my first technical post about the Visual Studio SDK :)
Back in December, I had a conference call with a potential partner who's building a custom integrated development environment on top of Visual Studio.
Once of the issues they ran into was trying to figure out how to unload a project from a solution. They were looking for an easy way to do that but ended up with a hacky implementation.
I chatted with one of our developers (Ole) on the VS SDK team and he provided some sample code.
The code below can be copy-and-pasted into the menu command handler if you use the wizard to create a new VS Package with a new menu command. Additionally, don't forget to add a reference to the EnvDTE assembly.
//Get the DTE object
DTE dte = GetService(typeof(SDTE)) as DTE;
Debug.Assert(dte != null);
//Get the selected project
Project selectedProject = null;
if (dte.SelectedItems.Count > 0)
{
selectedProject = ((SelectedItem)dte.SelectedItems.Item(1)).Project;
}
if (selectedProject != null)
{
IVsSolution solutionService = GetService(typeof(SVsSolution)) as IVsSolution;
Debug.Assert(solutionService != null);
IVsHierarchy selectedHierarchy;
ErrorHandler.ThrowOnFailure(solutionService.GetProjectOfUniqueName(selectedProject.UniqueName, out selectedHierarchy));
Debug.Assert(selectedHierarchy != null);
ErrorHandler.ThrowOnFailure(solutionService.CloseSolutionElement((uint)__VSSLNCLOSEOPTIONS.SLNCLOSEOPT_UnloadProject, selectedHierarchy, 0));
}
Comments
Anonymous
January 07, 2008
PingBack from http://msdnrss.thecoderblogs.com/2008/01/07/how-do-i-programmatically-unload-a-project-from-a-solution/Anonymous
January 15, 2008
This month's letter includes information about what the VSX team has been working on in the past fewAnonymous
January 21, 2008
This is a nice first technical blog!