Anteckning
Å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 XML-kommandotabellfil (.vsct) beskriver layouten och utseendet på kommandoobjekt för en VSPackage. Kommandoobjekt inkluderar knappar, kombinationsrutor, menyer, verktygsfält och grupper med kommandoobjekt. Den här artikeln beskriver XML-kommandotabellfiler, hur de påverkar kommandoobjekt och menyer och hur du skapar dem.
Kommandon, menyer, grupper och .vsct-filen
.vsct-filerna är ordnade runt kommandon, menyer och kommandogrupper. XML-taggar i .vsct-filen representerar vart och ett av dessa objekt, tillsammans med andra associerade objekt som kommandoknappar, kommandoplacering och bitmappar.
När du skapar en ny VSPackage genom att köra Visual Studio-paketmallen genererar mallen en .vsct-fil med nödvändiga element för ett menykommando, verktygsfönster eller anpassad redigerare, beroende på dina val. Den här .vsct-filen kan sedan ändras för att uppfylla kraven för en specifik VSPackage. Exempel på hur du ändrar en .vsct-fil finns i Utöka menyer och kommandon.
Information om hur du skapar en ny, tom .vsct-fil finns i Så här skapar du en .vsct-fil. När du har skapat det lägger du till XML-element, attribut och värden i filen för att beskriva layouten för kommandoobjektet. Ett detaljerat XML-schema finns i VSCT XML-schemareferensen.
Skillnader mellan .ctc- och .vsct-filer
Även om innebörden bakom XML-taggarna i en .vsct-fil är densamma som taggarna i det nu inaktuella .ctc-filformatet är implementeringen lite annorlunda:
Den nya <externa> taggen är där du refererar till andra .h-filer som ska kompileras, till exempel de filerna för Visual Studio-verktygsfältet.
Medan .vsct-filer stöder instruktionen /include, som .ctc-filer gör, har den också ett nytt <importelement>. Skillnaden är att /include innehåller all information, medan <importen> endast innehåller namnen.
Även om .ctc-filer kräver en rubrikfil där du definierar dina förprocessordirektiv krävs inte en för .vsct-filer . Placera i stället dina direktiv i symboltabellen, som finns i symbolelementen<> längst ned i .vsct-filen.
.vsct-filer har en <anteckningstagg> som gör att du kan bädda in all information du vill, till exempel anteckningar eller till och med bilder.
Värden lagras som attribut på objektet.
Kommandoflaggor kan lagras individuellt eller staplas. IntelliSense fungerar dock inte på staplade kommandoflaggor. Mer information om kommandoflaggor finns i elementet CommandFlag.
Du kan ange flera typer, till exempel delade listrutor, kombinationer osv.
GUID:er blir inte validerade.
Varje gränssnittselement har en sträng som representerar texten som visas med den.
Det överordnade objektet är valfritt. Om det utelämnas används värdet Grupp okänd .
Argumentet Ikon är valfritt.
Bitmappsavsnitt: Det här avsnittet är samma som i en .ctc-fil , förutom att du nu kan ange ett filnamn via Href som hämtas av vsct.exe kompilatorn vid kompileringstillfället.
ResID: Det gamla bitmappsresurs-ID:t kan användas och fungerar fortfarande på samma sätt som i .ctc-filer .
HRef: En ny metod som gör att du kan ange ett filnamn för bitmappsresursen. Det förutsätter att alla används, så att du kan utelämna avsnittet "Använt". Kompilatorn söker först efter lokala resurser efter filen, sedan på alla nettoresurser och eventuella resurser som definieras av /I-växeln .
Nyckelbindning: Du behöver inte längre ange en emulator. Om du anger en förutsätter kompilatorn att redigeraren och emulatorn är samma.
Keychord: Keychord har släppts. Det nya formatet är Key1,Mod1,Key2,Mod2. Du kan ange antingen ett tecken, en hexadecimal eller en VK-konstant.
Den nya kompilatorn ,vsct.exe, kompilerar både .ctc - och .vsct-filer . Den gamla ctc.exe kompilatorn känner dock inte igen eller kompilerar .vsct-filer .
Du kan användavsct.exe-kompilatorn för att konvertera en befintlig .cto-fil till en .vsct-fil. Mer information finns i Så här skapar du en .vsct-fil från en befintlig .cto-fil.
.vsct-filelementen
Kommandotabellen har följande hierarki och element:
CommandTable-element: Representerar alla kommandon, menygrupper och menyer som är associerade med VSPackage.
Externt element: Refererar till alla externa .h-filer som du vill sammanfoga med .vsct-filen .
Inkludera element: Refererar till eventuella ytterligare huvudfiler (.h) som du vill kompilera tillsammans med .vsct-filen . En .vsct-fil kan innehålla .h-filer som innehåller konstanter som definierar kommandon, menygrupper och menyer som IDE eller någon annan VSPackage tillhandahåller.
Elementet Kommandon: Representerar alla enskilda kommandon som kan köras. Varje kommando har följande fyra underordnade element:
Menyelement: Representerar alla menyer och verktygsfält i VSPackage. Menyer är containrar för grupper av kommandon.
Element för grupper: Representerar alla grupper i VSPackage. Grupper är samlingar med enskilda kommandon.
Knappelement: Representerar alla kommandoknappar och menyalternativ i VSPackage. Knappar är visuella kontroller som kan associeras med kommandon.
Bitmappselement: Representerar alla bitmappar för alla knappar i VSPackage. Bitmappar är bilder som visas bredvid eller på kommandoknapparna, beroende på kontexten.
Elementet CommandPlacements: Anger ytterligare platser där de enskilda kommandona ska placeras i menyerna i VSPackage.
VisibilityConstraints-element: Anger om ett kommando alltid visas eller inte, eller bara i vissa kontexter, till exempel när en viss dialogruta eller ett visst fönster visas. Menyer och kommandon som har ett värde för det här elementet visas endast när den angivna kontexten är aktiv. Standardbeteendet är att alltid visa kommandot.
KeyBindings-element: Anger alla nyckelbindningar för kommandona. Det vill: en eller flera tangentkombinationer som måste tryckas ned för att köra kommandot, till exempel Ctrl+S.
UsedCommands-element: Informerar Visual Studio-miljön om att även om det angivna kommandot implementeras av annan kod, så tillhandahåller det kommandoimplementeringen när den aktuella VSPackage är aktiv.
Symbolelement: Innehåller symbolnamnen och GUID-ID:na för alla dina kommandon i paketet.
.vsct-riktlinjer för fildesign
Följ dessa riktlinjer om du vill utforma en .vsct-fil .
Kommandon kan endast placeras i grupper, grupper kan endast placeras i menyer och menyer kan endast placeras i grupper. Endast menyer visas i IDE, grupper och kommandon visas inte.
Undermenyer kan inte tilldelas direkt till en meny, men måste tilldelas till en grupp, som i sin tur tilldelas till en meny.
Kommandon, undermenyer och grupper kan tilldelas till en överordnad grupp eller meny med hjälp av det överordnade fältet i deras definitionsdirektiv.
Att organisera en kommandotabell enbart via de överordnade fälten i direktiven har en betydande begränsning. Direktiven som definierar objekt kan bara ha ett överordnat argument.
Återanvändning av kommandon, grupper eller undermenyer kräver att ett nytt direktiv används för att skapa en ny instans av objektet med ett eget
GUID:IDpar.Varje
GUID:IDpar måste vara unikt. Att återanvända ett kommando som till exempel har placerats på en meny, ett verktygsfält eller på en snabbmeny hanteras av IOleCommandTarget gränssnittet.Kommandon och undermenyer kan också tilldelas till flera grupper och grupper kan tilldelas till flera menyer med hjälp av elementet Kommandon.
.vsct-filanteckningar
Om du gör några ändringar i en .vsct-fil när du både kompilerar den och placerar den i en intern satellit-DLL, bör du köra devenv.exe /setup /nosetupvstemplates. Detta tvingar de VSPackage-resurser som anges i det experimentella registret att läsas om, och den interna databasen som beskriver Visual Studio att återskapas.
Under utvecklingen är det möjligt att skapa och registrera flera VSPackage-projekt i den experimentella registreringsdatafilen som kan leda till förvirrande oreda i IDE:t. Du kan åtgärda detta genom att återställa den experimentella hive-filen till standardinställningarna för att ta bort alla registrerade VSPackages och eventuella ändringar som de kan ha gjort i IDE:t. Om du vill återställa den experimentella hiven använder du verktyget CreateExpInstance.exe som medföljer Visual Studio SDK. Du hittar den på:
%PROGRAMFILES(x86)%\Visual Studio\<version> SDK\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe
Kör verktyget med kommandot CreateExpInstance /Reset. Kom ihåg att det här verktyget tar bort alla registrerade VSPackages som normalt inte är installerade med Visual Studio från den experimentella hive-filen.