В VS есть ошибка, которая перерабатывает объект DTEEvents
(с вашими обработчиками событий), если вы не сохраните явную ссылку на него. Вам нужно что-то вроде этого:
[ProvideAutoLoad(VSConstants.UICONTEXT.NoSolution_string)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionExists_string)]
class MyPackage : Package
{
DTEEvents _EventsObj;
protected override void Initialize()
{
var dte = (EnvDTE.DTE)GetService(typeof(EnvDTE.DTE));
_EventsObj = dte.Events.DTEEvents;
_EventsObj.OnStartupComplete += OnStartupComplete;
}
void OnStartupComplete()
{
}
}