/// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            // You may wonder why this isn't in the constructor.
            // It's because we're dependant on the IServiceProvider which isn't
            // created until the package is loaded within the VS environment so
            // that's why this initialization is done here
            var dependencyContainer = Bootstrapper.Initialize(this);

            InitializeListeners.FromAssembly(dependencyContainer, typeof(EventQueue).Assembly);
            InitializeListeners.FromAssembly(dependencyContainer, this.GetType().Assembly);

            ProcessingQueueCommand.Initialize(this);
            TestsCommand.Initialize(this);
            base.Initialize();

            // Subscribe to solution loaded/unloaded events
            var solution = GetService(typeof(SVsSolution)) as IVsSolution;

            var eventHandler = dependencyContainer.Resolve <VisualStudioEventHandler>();

            solution.AdviseSolutionEvents(eventHandler, out solutionEventsCookie);

            var rdt = GetService(typeof(SVsRunningDocumentTable)) as IVsRunningDocumentTable;

            rdt.AdviseRunningDocTableEvents(eventHandler, out rdtEventsCookie);
        }
 /// <summary>
 ///     Initializes the singleton instance of the command.
 /// </summary>
 /// <param name="package">Owner package, not null.</param>
 public static void Initialize(Package package)
 {
     Instance = new ProcessingQueueCommand(package);
 }