如何:强制 VSPackage 加载
,才需要它们附带的功能完成处理时, Vspackage 通常会加载。 在某些情况下,但是,一些可能必须强制另一个 VSPackage 加载。 例如,轻量级 VSPackage 可能在不能用作 CMDUIContext 的一种编程上下文中更大的 VSPackage。
可以使用 LoadPackage 方法强制 VSPackage 加载。
强制 VSPackage 加载
插入此代码来强制另一个 VSPackage 加载 VSPackage 中 Initialize 方法中:
Dim shell As IVsShell = TryCast(GetService(GetType(SVsShell)), IVsShell) If shell Is Nothing Then Return End If Dim package As IVsPackage = Nothing Dim PackageToBeLoadedGuid As Guid = GetType(PackageToBeLoaded).GUID shell.LoadPackage(PackageToBeLoadedGuid, package)
IVsShell shell = GetService(typeof(SVsShell)) as IVsShell; if (shell == null) return; IVsPackage package = null; Guid PackageToBeLoadedGuid = new Guid(Microsoft.PackageToBeLoaded.GuidList.guidPackageToBeLoadedPkgString); shell.LoadPackage(ref PackageToBeLoadedGuid, out package);
在 VSPackage 初始化,则将强制 PackageToBeLoaded 加载。
可靠编程
不应使用 VSPackage 通信使用强制加载。 请改用 服务。