类似于下面的代码,类似于内置的“自定义工具窗口”代码模板。 要加载程序包,我必须找到ToolWindow按钮(命令)并按下它。当我打开一个文件夹时,不会加载此程序包。 但是,此扩展取决于某些服务(IVsFileChangeEx,.etc)提供的evnet,它们需要由AsyncPackage.GetServiceAsync加载。我该怎么办?
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
[Guid(Guids.packageGuidStr)]
[ProvideMenuResource("Menus.ctmenu", 1)]
[ProvideToolWindow(typeof(ToolWindow))]
public sealed class ExuedPackage : AsyncPackage
{
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
{
await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
"Init Package".Log();
.... Get some services and store them ...
.... Register callbacks to them ....
await ToolWindowCommand.InitializeAsync(this);
}
}