C# 启动时加载Visual Studio 2019扩展

C# 启动时加载Visual Studio 2019扩展,c#,visual-studio-2019,visual-studio-extensions,C#,Visual Studio 2019,Visual Studio Extensions,我需要衡量在中断模式下调试项目所花费的时间。 所以我想出了一个主意,写一个定制的VS扩展,它绑定到 onenterbarkmode和OnEnterRunMode调试事件 这很好,但我需要确保在VS启动时正确加载扩展。 否则,当我已经在调试时,可能无法加载扩展 不幸的是,VisualStudio2019强制用户使用AsyncPackage基类和 设置BackgroundLoadingFlag。默认情况下VS停用使用不推荐的API的扩展, 它允许在启动时同步加载扩展 关于如何确保我的扩展在安装时已加

我需要衡量在中断模式下调试项目所花费的时间。 所以我想出了一个主意,写一个定制的VS扩展,它绑定到 onenterbarkmodeOnEnterRunMode调试事件

这很好,但我需要确保在VS启动时正确加载扩展。 否则,当我已经在调试时,可能无法加载扩展

不幸的是,VisualStudio2019强制用户使用AsyncPackage基类和 设置BackgroundLoadingFlag。默认情况下VS停用使用不推荐的API的扩展, 它允许在启动时同步加载扩展

关于如何确保我的扩展在安装时已加载,您有什么建议或解决方法吗
启动调试?

因此,在激活时将包设置为自动加载,这意味着调试启动后应加载包——如果在该会话中没有人进行任何调试,则启动时没有理由加载包。加载包后,订阅这些事件,但还要检查当前状态以查看是否已进入中断模式并错过了初始事件。与其尝试“总是在第一个事件之前加载”,不如订阅事件并检查相应的属性以查看您是否已经处于该状态


(为什么我们不允许您在启动时同步加载?因为这样每个人都会这样做,因为这很容易,而且您的VisualStudio需要很长时间才能加载。)

我只想在DebuggingContext激活时加载扩展,但这会导致丢失初始事件。我绝对有必要不丢失任何OneInterBreakMode事件。我理解不允许同步加载的原因,但我的扩展应该只测量在中断模式下花费的时间,并将测量的时间写入内存。因此,调试过程会在调试会话启动时触发,因此我认为在这里不太可能会错过任何东西。在调试时异步加载时,我总是错过第一个事件。