From Visual Studio package (VSIX) how to determine the solution or assembly of a project?

From Visual Studio (VSIX) package, how to determine a solution or assembly of a project?

+4
source share
1 answer

If you have a package class in your assembly, you can do:

DTE2 = Package.GetGlobalService(typeof(SDTE)) as DTE2; 

Then look at the IsOpen property to see if the solution is open ... look at the Projects property to find projects.

However, if you mean you, how do I get an event when a solution opens ... then Solutions, for example:

 public sealed class MyPackage : Package { private DTE m_dte; protected override void Initialize() { IServiceContainer serviceContainer = this as IServiceContainer; m_dte = serviceContainer.GetService(typeof(SDTE)) as DTE; var m_solutionEvents = m_dte.Events.SolutionEvents; m_solutionEvents.Opened += SolutionOpened; ... } void SolutionOpened() { .... away you go... } } 

ref: VSIX: Getting the DTE object ref: http://msdn.microsoft.com/en-us/library/envdte.solution.aspx

ref: http://msdn.microsoft.com/en-us/library/envdte._solution.projects.aspx

+5
source

All Articles