如何:强制 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 通信使用强制加载。 请改用 服务

请参见

概念

加载 Vspackage

其他资源

Vspackage