Charger des VSPackagesLoad VSPackages

Les VSPackages sont chargés dans Visual Studio uniquement lorsque leur fonctionnalité est requise.VSPackages are loaded into Visual Studio only when their functionality is required. Par exemple, un VSPackage est chargé lorsque Visual Studio utilise une fabrique de projet ou un service qui implémente le VSPackage.For example, a VSPackage is loaded when Visual Studio uses a project factory or a service that the VSPackage implements. Cette fonctionnalité est appelée chargement différé, ce qui est utilisé chaque fois que possible améliorer les performances.This feature is called delayed loading, which is used whenever possible to improve performance.

Note

Visual Studio peut déterminer certaines informations sur le package, telles que les commandes offertes par un VSPackage, sans charger le VSPackage.Visual Studio can determine certain VSPackage information, such as the commands that a VSPackage offers, without loading the VSPackage.

VSPackages peut être définis à chargement automatique dans un contexte d’interface (UI) utilisateur particulier, par exemple, lorsqu’une solution est ouverte.VSPackages can be set to autoload in a particular user interface (UI) context, for example, when a solution is open. Le ProvideAutoLoadAttribute attribut définit ce contexte.The ProvideAutoLoadAttribute attribute sets this context.

Charger automatiquement un VSPackage dans un contexte spécifiqueAutoload a VSPackage in a specific context

  • Ajouter le ProvideAutoLoad d’attribut pour les attributs de package Visual Studio :Add the ProvideAutoLoad attribute to the VSPackage attributes:

    [DefaultRegistryRoot(@"Software\Microsoft\VisualStudio\14.0")]  
    [PackageRegistration(UseManagedResourcesOnly = true)]  
    [ProvideAutoLoad(UIContextGuids80.SolutionExists)]  
    [Guid("00000000-0000-0000-0000-000000000000")] // your specific package GUID  
    public class MyAutoloadedPackage : Package  
    {. . .}  
    

    Afficher les champs énumérées de UIContextGuids80 pour obtenir la liste des contextes d’interface utilisateur et leurs valeurs GUID.See the enumerated fields of UIContextGuids80 for a list of the UI contexts and their GUID values.

  • Définir un point d’arrêt dans le Initialize (méthode).Set a breakpoint in the Initialize method.

  • Générer le VSPackage et démarrer le débogage.Build the VSPackage and start debugging.

  • Chargez une solution, ou créez-en un.Load a solution or create one.

    Le package Visual Studio charge et s’arrête au point d’arrêt.The VSPackage loads and stops at the breakpoint.

Force un VSPackage à chargerForce a VSPackage to load

Dans certaines circonstances, un VSPackage peut avoir forcer un autre VSPackage à charger.Under some circumstances a VSPackage may have to force another VSPackage to be loaded. Par exemple, un VSPackage léger peut charger un VSPackage plus volumineux dans un contexte qui n’est pas disponible en tant qu’un CMDUIContext.For example, a lightweight VSPackage might load a larger VSPackage in a context that is not available as a CMDUIContext.

Vous pouvez utiliser la LoadPackage méthode pour forcer un VSPackage à charger.You can use the LoadPackage method to force a VSPackage to load.

  • Insérez ce code dans le Initialize méthode du VSPackage qui force une autre VSPackage à charger :Insert this code into the Initialize method of the VSPackage that forces another VSPackage to load:

    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);  
    

    Lorsque le VSPackage est initialisé, il force PackageToBeLoaded à charger.When the VSPackage is initialized, it will force PackageToBeLoaded to load.

    Chargement de force n’a pas doit être utilisé pour la communication de VSPackage.Force loading should not be used for VSPackage communication. Utilisez utilisez et fournir des services à la place.Use Use and provide services instead.

Voir aussiSee also

VSPackagesVSPackages