C# vsct侦听ProjectItemsEvents.ItemAdded未捕获任何内容

C# vsct侦听ProjectItemsEvents.ItemAdded未捕获任何内容,c#,visual-studio,visual-studio-extensions,vsct,C#,Visual Studio,Visual Studio Extensions,Vsct,VS2019 16.5.0预览版1 我试图捕捉项目添加、删除或重命名项时发生的事件 在打开和关闭解决方案时,或者在添加或删除项目时,我会捕获,但在将单个文件添加到项目时,我不会捕获 public DTE2 _dte2; private Events2 _events2; private SolutionEvents _SolutionEvents; private ProjectItemsEvents _ProjectItemsEvents; public MyProject() {

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
公共DTE2\u DTE2;
私人事件2_事件2;
私人解决方案事件_解决方案事件;
私人项目(projecttemsevents);;
公共工程()
{
_dte2=Package.GetGlobalService(typeof(EnvDTE.DTE))作为dte2;
_dte2.Events.SolutionEvents.AfterClosing+=SolutionEvents\u AfterClosing;
_dte2.Events.SolutionEvents.Opened+=SolutionEvents\u Opened;
_dte2.Events.SolutionEvents.ProjectAdded+=SolutionEvents\u ProjectAdded;
_dte2.Events.SolutionEvents.ProjectRemoved+=SolutionEvents\u ProjectRemoved;
_dte2.Events.SolutionEvents.BeforeClosing+=SolutionEvents\U SolutionBeforeClosing;
_dte2.Events.SolutionEvents.projectRename+=SolutionEvents\u projectRename;
_events2=(events2)\ u dte.Events;
_ProjectItemsEvents=_events2.ProjectItemsEvents;
_events2.ProjectItemsEvents.ItemAdded+=ItemAddedHandler;
_events2.ProjectItemsEvents.ItemRemoved+=ItemRemovedHandler;
_events2.ProjectItemsEvents.ItemRenamed+=ItemRenamedHandler;
}
私有无效项addedHandler(ProjectItem ProjectItem)
{

}尝试更改_events2.ProjectItemsEvents。致项目经理。另见@SergeyVlasov谢谢sergey。你能澄清你所说的“尝试将事件2.ProjectItemsEvents.更改为ProjectItemsEvents”是什么意思吗?你的意思是将诸如“_events2.ProjectItemsEvents.ItemAdded+=ItemAddHandler;”之类的行更改为“_ProjectItemsEvents.ItemAdded+=ItemAddHandler;”吗?是的,你是对的。弄明白为什么它对我不起作用了。ProjectItemAdded或deleted事件不适用于.NET核心项目。