vsct слушать ProjectItemsEvents.ItemAdded ничего не улавливает

VS2019 16.5.0 предварительный просмотр 1

Я пытаюсь поймать события, когда в проект добавлен, удален или переименован элемент.

Я улавливаю, когда решение открывается и закрывается, или когда проект добавляется или удаляется, но я просто не улавливаю, когда в проект добавляется один файл.

public DTE2 _dte2;
private Events2 _events2;
private SolutionEvents _SolutionEvents;
private ProjectItemsEvents _ProjectItemsEvents;

public MyProject()
{
    _dte2 = Package.GetGlobalService(typeof(EnvDTE.DTE)) as DTE2;

    _dte2.Events.SolutionEvents.AfterClosing += SolutionEvents_AfterClosing;
    _dte2.Events.SolutionEvents.Opened += SolutionEvents_Opened;
    _dte2.Events.SolutionEvents.ProjectAdded += SolutionEvents_ProjectAdded;
    _dte2.Events.SolutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved;
    _dte2.Events.SolutionEvents.BeforeClosing += SolutionEvents_SolutionBeforeClosing;
    _dte2.Events.SolutionEvents.ProjectRenamed += SolutionEvents_ProjectRenamed;

    _events2 = (Events2)_dte.Events;
    _ProjectItemsEvents = _events2.ProjectItemsEvents;

    _events2.ProjectItemsEvents.ItemAdded += ItemAddedHandler;
    _events2.ProjectItemsEvents.ItemRemoved += ItemRemovedHandler;
    _events2.ProjectItemsEvents.ItemRenamed += ItemRenamedHandler;
}

private void ItemAddedHandler(ProjectItem projectItem) 
{
} <- breakpoint here

private void ItemRemovedHandler(ProjectItem projectItem)
{
} <- breakpoint here

private void ItemRenamedHandler(ProjectItem projectItem, string oldName)
{
} <- breakpoint here

Установка точек останова в ItemAddedHandler, ItemRemovedHandler или ItemRenamedHandler вообще не имеет никакого эффекта. Эти методы никогда не вызываются, когда я добавляю, переименовываю или удаляю файл из проекта, когда расширение работает в экспериментальном экземпляре.

Я нашел ссылки на других людей, у которых были похожие проблемы, но все они были связаны со сборкой мусора, и я не считаю, что это моя проблема, поскольку у меня есть ссылка на events2 и projectItemsEvents.

0 ответов

Другие вопросы по тегам