c# - 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 的引用。
解决方案
推荐阅读
- scala - Avro Schema:从 Schema 字段构建 Avro Schema
- javascript - 使用react-redux的useSelector时,生命周期中重复调用setState会报错
- sql - 从 unix_time yyyy-MM-dd HH:mm:ss 计算 start_time 和 end_time 之间的差异(以秒为单位)
- r - 值错误 [[3L]] (cond): 在 shinyapps 上发布时禁用多字节字符串
- javascript - 是否有针对类的 Dojo 命名约定?
- javascript - 在 angularjs/javascript 中将 UTC 时间转换为浏览器的本地时间
- sql-server - 如何执行 EXEC sp_* 命令列表并继续处理任何错误
- sql - 需要将选择传递给变量以获取 6 周前的最后一个星期五
- swift - Proximity Senzor addNotification 调用函数多次
- git - 将项目文件夹上传到私有 git repo 中的特定位置(子文件夹)