Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En VSPackage deklarerar sina menyobjekt och deras standardtillstånd via Visual Studio-kommandotabellfilen (.vsct). Visual Studios integrerade utvecklingsmiljö (IDE) visar menyalternativen i deras standardtillstånd tills VSPackage har lästs in. Därefter anropas QueryStatus metoden för att aktivera eller inaktivera menyalternativ.
En VSPackage kan ange en registernyckel så att VSPackage kan laddas in automatiskt baserat på användargränssnittskontexten (kommandoanvändargränssnitt), men vanligtvis bör en källkontroll-VSPackage laddas in på begäran i stället för att bara reagera på en specifik användargränssnittskontext. Mer information om registernyckeln AutoLoadPackages finns i Hantera VSPackages.
VSPackage-användargränssnitt
Ett källkontrollpaket implementeras som ett VSPackage och använder inte något användargränssnitt från Visual Studio. Varje källkontroll VSPackage måste ange sina egna gränssnittselement, till exempel menyalternativ, menygrupper, verktygsfönster, verktygsfält och alla obligatoriska användargränssnitt för inställningsalternativ som är specifika för källkontrollen VSPackage. Dessa gränssnittselement kan aktiveras statiskt eller dynamiskt. Statiska gränssnittselement definieras i en .vsct-fil och visas oavsett om VSPackage läses in eller inte. Dynamiska gränssnittselement kan vara synliga beroende på en viss kommandogränssnittskontext, till exempel vsContextNoSolution, eller som ett resultat av ett anrop till QueryStatus metoden. Synligheten för dynamiska gränssnittselement följer strategin för fördröjd inläsning av VSPackages.
Användargränssnittsbegränsningar för källkontroll VSPackages
Eftersom källkontrollen VSPackage inte kan tas bort från IDE:t när den har lästs in måste VSPackage kunna ange ett inaktivt tillstånd. När en VSPackage får ett meddelande om att den inte längre är aktiv inaktiverar VSPackage användargränssnittet och ignorerar eventuell extern IDE-interaktion. VSPackage-implementeringen av QueryStatus metoden bör dölja kommandon när VSPackage inte är aktivt.
Varje källkontroll VSPackage måste implementera IVsSccProvider gränssnittet. Två metoder i gränssnittet, SetActive och SetInactive, måste implementeras av VSPackage.
Källkontrollen VSPackage kan ha prenumererat på olika IDE-händelser som implementeras av IVsSolutionEvents3, IVsTrackProjectDocumentsEvents2och så vidare. VSPackage kan också ha implementerat registry-aktiverade callback-gränssnitt, till exempel IVsSolutionPersistence. Alla dessa gränssnitt måste ignoreras när de är inaktiva.
I följande lista visas de gränssnitt som påverkas av det aktiva tillståndet för en källkontroll VSPackage:
Spåra händelser för projektdokument.
Lösningshändelser.
Gränssnitt för lösningspersistens. När de är inaktiva ska paket inte skriva till .sln- och .suo-filer.
Egenskapsförlängare
IVsQueryEditQuerySave2 och IVsSccManager2, samt eventuella valfria gränssnitt som är associerade med källkontroll, anropas inte när källkontroll-VSPackage är inaktiv.
När Visual Studio IDE startar anger Visual Studio kommandogränssnittskontexten till ID:t för den aktuella standardkällkontrollens VSPackage-ID. Detta gör att det statiska användargränssnittet för den aktiva källkontrollen VSPackage visas i IDE:t utan att vsPackage läses in. Visual Studio pausar för att VSPackage ska registreras med Visual Studio genom IVsRegisterScciProvider innan det gör några anrop till VSPackage.
I följande tabell beskrivs specifik information om hur Visual Studio IDE döljer olika gränssnittsobjekt.
| Användargränssnittsobjekt | Description |
|---|---|
| Menyer och verktygsfält | Källkontrollpaketet måste ange den inledande menyn och verktygsfältets synlighetstillstånd till källkontrollpaketets ID i avsnittet VisibilityConstraints i .vsct-filen . Detta gör att Visual Studio IDE kan ange status för menyalternativen på rätt sätt utan att läsa in VSPackage och anropa en implementering av QueryStatus metoden. |
| Verktygsfönster | Källkontrollen VSPackage döljer alla verktygsfönster som den äger när den görs inaktiv. |
| VsPackage-specifika alternativsidor för källkontroll | Registernyckeln HKLM\SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts låter en VSPackage ange de kontexter där dess alternativsidor ska visas. En registerpost under den här nyckeln måste skapas med hjälp av tjänst-ID (SID) för källkontrolltjänsten och tilldela den ett DWORD-värde på 1. När en användargränssnittshändelse inträffar i en kontext som källkontrollen VSPackage registreras med anropas VSPackage om den är aktiv. |