VSPackage yükleme
VSPackage'lar Visual Studio'ya yalnızca işlevleri gerektiğinde yüklenir. Örneğin, Visual Studio bir proje fabrikası veya VSPackage'ın uyguladığı bir hizmet kullandığında BIR VSPackage yüklenir. Bu özellik, performansı geliştirmek için mümkün olduğunda kullanılan gecikmeli yükleme olarak adlandırılır.
Not
Visual Studio, VSPackage'ın sunduğu komutlar gibi belirli VSPackage bilgilerini VSPackage'ı yüklemeden belirleyebilir.
VSPackage'lar, örneğin bir çözüm açıkken belirli bir kullanıcı arabirimi (UI) bağlamında otomatik yüklenecek şekilde ayarlanabilir. ProvideAutoLoadAttribute özniteliği bu bağlamı ayarlar.
VsPackage'i belirli bir bağlamda otomatik olarak yükleme
ÖZNITELIĞIni
ProvideAutoLoad
VSPackage özniteliklerine ekleyin:[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 {. . .}
Kullanıcı arabirimi bağlamlarının ve GUID değerlerinin listesi için öğesinin numaralandırılmış alanlarına UIContextGuids80 bakın.
yönteminde Initialize bir kesme noktası ayarlayın.
VSPackage'ı derleyin ve hata ayıklamaya başlayın.
Bir çözüm yükleyin veya bir çözüm oluşturun.
VSPackage, kesme noktasında yüklenir ve durur.
VSPackage'ı yüklemeye zorlama
Bazı durumlarda VSPackage başka bir VSPackage'ı yüklenmeye zorlamak zorunda kalabilir. Örneğin, basit bir VSPackage, CMDUIContext olarak kullanılamayan bir bağlamda daha büyük bir VSPackage yükleyebilir.
VSPackage'ı LoadPackage yüklemeye zorlamak için yöntemini kullanabilirsiniz.
Bu kodu Initialize , başka bir VSPackage'ı yüklemeye zorlayan VSPackage yöntemine ekleyin:
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 başlatıldığında yüklenmeye zorlanır
PackageToBeLoaded
.VSPackage iletişimi için zorlamalı yükleme kullanılmamalıdır. Bunun yerine Hizmet kullan ve sağla seçeneğini kullanın.