Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Balíčky VSPackage se načtou do sady Visual Studio jenom v případě, že je potřeba jejich funkce. Balíček VSPackage se například načte, když Visual Studio používá projektovou továrnu nebo službu, kterou sada VSPackage implementuje. Tato funkce se nazývá zpožděné načítání, které se používá, kdykoli je to možné ke zlepšení výkonu.
Poznámka:
Visual Studio může určit určité informace balíčku VSPackage, například příkazy, které balíček VSPackage nabízí, aniž by se načetl balíček VSPackage.
Balíčky VSPackage lze nastavit tak, aby se automaticky načítá v konkrétním kontextu uživatelského rozhraní, například při otevření řešení. Atribut ProvideAutoLoadAttribute nastaví tento kontext.
Automatické načtení balíčku VSPackage v konkrétním kontextu
ProvideAutoLoadPřidejte atribut do atributů VSPackage:[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 {. . .}Prohlédněte si výčtová pole UIContextGuids80 pro seznam kontextů uživatelského rozhraní a jejich hodnoty GUID.
Nastavte bod přerušení v Initialize metodě.
Sestavte balíček VSPackage a spusťte ladění.
Načtěte řešení nebo ho vytvořte.
VSPackage se načte a zastaví na bodu přerušení.
Vynucení načtení balíčku VSPackage
Za určitých okolností může být nutné vynutit načtení jiného balíčku VSPackage. Například jednoduchý balíček VSPackage může načíst větší balíček VSPackage v kontextu, který není k dispozici jako CMDUIContext.
Tuto metodu LoadPackage můžete použít k vynucení načtení balíčku VSPackage.
Vložte tento kód do Initialize metody VSPackage, která vynutí načtení dalšího balíčku VSPackage:
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);Při inicializaci balíčku VSPackage se vynutí načtení
PackageToBeLoaded.Vynucené načítání by se nemělo používat ke komunikaci s balíčkem VSPackage. Místo toho použijte použití a poskytování služeb .