Partilhar via


Arquivos de tabela de comandos XML de design (.vsct)

Um arquivo de tabela de comando XML (.vsct) descreve o layout e a aparência dos itens de comando para um VSPackage. Os itens de comando incluem botões, caixas de combinação, menus, barras de ferramentas e grupos de itens de comando. Este artigo descreve arquivos de tabela de comando XML, como eles afetam itens de comando e menus e como criá-los.

Comandos, menus, grupos e o arquivo .vsct

Os arquivos .vsct são organizados em torno de comandos, menus e grupos de comandos. As marcas XML no arquivo .vsct representam cada um desses itens, juntamente com outros itens associados, como botões de comando, posicionamento de comandos e bitmaps.

Quando você cria um novo VSPackage executando o modelo de pacote do Visual Studio, o modelo gera um arquivo .vsct com os elementos necessários para um comando de menu, janela de ferramenta ou editor personalizado, dependendo de suas seleções. Este arquivo .vsct pode então ser modificado para atender aos requisitos de um VSPackage específico. Para obter exemplos de como modificar um arquivo .vsct , consulte Estender menus e comandos.

Para criar um novo arquivo .vsct em branco, consulte Como criar um arquivo .vsct. Uma vez criado, você adiciona elementos, atributos e valores XML ao arquivo para descrever o layout do item de comando. Para obter um esquema XML detalhado, consulte a referência do esquema XML VSCT.

Diferenças entre arquivos .ctc e .vsct

Embora o significado por trás das tags XML em um arquivo .vsct seja o mesmo que as tags no formato de arquivo .ctc agora preterido, sua implementação é um pouco diferente:

  • A nova <tag extern> é onde você faz referência a outros arquivos .h a serem compilados, como esses arquivos para a barra de ferramentas do Visual Studio.

  • Embora os arquivos .vsct suportem a instrução /include , assim como os arquivos .ctc , ele também apresenta um novo <elemento import> . A diferença é que /include traz todas as informações, enquanto <import> traz apenas os nomes.

  • Embora os arquivos .ctc exijam um arquivo de cabeçalho no qual você define suas diretivas de pré-processador, um não é necessário para arquivos .vsct . Em vez disso, coloque suas diretivas na tabela de símbolos, localizada nos <elementos Symbol> , localizados na parte inferior do arquivo .vsct .

  • Os arquivos .vsct apresentam uma <tag Annotation>, que permite que você incorpore qualquer informação que você gosta, como notas ou até mesmo imagens.

  • Os valores são armazenados como atributos no item.

  • Os sinalizadores de comando podem ser armazenados individualmente ou empilhados. O IntelliSense, no entanto, não funciona em sinalizadores de comando empilhados. Para obter mais informações sobre sinalizadores de comando, consulte o elemento CommandFlag.

  • Você pode especificar vários tipos, como dropdowns divididos, combinações, etc.

  • Os GUIDs não são validados.

  • Cada elemento da interface do usuário tem uma cadeia de caracteres que representa o texto exibido com ele.

  • O pai é opcional. Se omitido, o valor Grupo Desconhecido é usado.

  • O argumento Icon é opcional.

  • Seção Bitmap: Esta seção é a mesma que num ficheiro .ctc, exceto que agora pode especificar um nome de ficheiro via Href que será incorporado pelo compilador vsct.exe durante a compilação.

  • ResID: O ID de recurso de bitmap antigo pode ser usado e ainda funciona da mesma forma que em arquivos .ctc .

  • HRef: Um novo método que permite especificar um nome de arquivo para o recurso de bitmap. Pressupõe-se que todos são usados, por isso pode omitir a secção 'Usado'. O compilador procurará primeiro recursos locais para o arquivo, depois em quaisquer compartilhamentos de rede e quaisquer recursos definidos pela opção /I .

  • Keybinding: Você não precisa mais especificar um emulador. Se você especificar um, o compilador assumirá que o editor e o emulador são os mesmos.

  • Keychord: Keychord foi descartado. O novo formato é Key1,Mod1,Key2,Mod2. Você pode especificar um caractere, hexadecimal ou constante VK.

O novo compilador, vsct.exe, compila arquivos .ctc e .vsct . O compilador ctc.exe antigo, no entanto, não reconhecerá ou compilará arquivos .vsct .

Você pode usar o compilador vsct.exe para converter um arquivo .cto existente em um arquivo .vsct . Para obter mais informações, consulte Como criar um arquivo .vsct a partir de um arquivo .cto existente.

Os elementos do arquivo .vsct

A tabela de comandos tem a seguinte hierarquia e elementos:

  • Elemento CommandTable: Representa todos os comandos, grupos de menus e menus associados ao VSPackage.

  • Elemento externo: faz referência a quaisquer arquivos .h externos que você deseja mesclar com o arquivo .vsct .

  • Elemento Include: faz referência a quaisquer arquivos de cabeçalho (.h) adicionais que você deseja compilar junto com seu arquivo .vsct . Um arquivo .vsct pode incluir arquivos .h contendo constantes que definem comandos, grupos de menus e menus que o IDE ou outro VSPackage fornece.

  • Elemento Commands: representa todos os comandos individuais que podem ser executados. Cada comando tem os seguintes quatro subelementos:

  • Elemento Menus: Representa todos os menus e barras de ferramentas no VSPackage. Os menus são contêineres para grupos de comandos.

  • Elemento Groups: Representa todos os grupos no VSPackage. Grupos são coleções de comandos individuais.

  • Elemento Buttons: Representa todos os botões de comando e itens de menu no VSPackage. Os botões são controles visuais que podem ser associados a comandos.

  • Elemento Bitmaps: Representa todos os bitmaps para todos os botões no VSPackage. Bitmaps são imagens que são exibidas ao lado ou nos botões de comando, dependendo do contexto.

  • Elemento CommandPlacements: Indica locais adicionais onde os comandos individuais devem ser localizados nos menus do VSPackage.

  • Elemento VisibilityConstraints: especifica se um comando é ou não exibido em todos os momentos ou apenas em determinados contextos, como quando uma determinada caixa de diálogo ou janela é exibida. Os menus e comandos que têm um valor para esse elemento serão exibidos somente quando o contexto especificado estiver ativo. O comportamento padrão é exibir o comando o tempo todo.

  • Elemento KeyBindings: Especifica quaisquer ligações de chave para os comandos. Ou seja, uma ou mais combinações de teclas que devem ser pressionadas para executar o comando, como Ctrl+S.

  • Elemento UsedCommands: Informa o ambiente do Visual Studio que, embora o comando especificado seja implementado por outro código, quando o VSPackage atual está ativo, ele fornece a implementação do comando.

  • Elemento Símbolos: Contém os nomes dos símbolos e os IDs GUID para todos os comandos no pacote.

Diretrizes de design de arquivo .vsct

Para criar com êxito um arquivo .vsct , siga estas diretrizes.

  • Os comandos podem ser colocados apenas em grupos, os grupos podem ser colocados apenas em menus e os menus podem ser colocados apenas em grupos. Apenas menus são realmente exibidos no IDE, grupos e comandos não são.

  • Os submenus não podem ser atribuídos diretamente a um menu, mas devem ser atribuídos a um grupo, que, por sua vez, é atribuído a um menu.

  • Comandos, submenus e grupos podem ser atribuídos a um grupo ou menu pai usando o campo pai da sua diretiva de definição.

  • Organizar uma tabela de comandos somente através dos campos pai nas diretivas tem uma limitação significativa. As diretivas que definem objetos podem usar apenas um argumento pai.

  • A reutilização de comandos, grupos ou submenus requer o uso de uma nova diretiva para criar uma nova instância do objeto com seu próprio GUID:ID par.

  • Cada GUID:ID par deve ser único. A reutilização de um comando que foi, por exemplo, colocado num menu, numa barra de ferramentas ou num menu de contexto é manipulada pela interface IOleCommandTarget.

  • Comandos e submenus também podem ser atribuídos a vários grupos, e grupos podem ser atribuídos a vários menus usando o elemento Commands.

Notas sobre o arquivo .vsct

Se você fizer alterações em um arquivo .vsct depois de compilá-lo e colocá-lo em uma DLL satélite nativa, deverá executar devenv.exe /setup /nosetupvstemplates. Isso força os recursos VSPackage especificados no registro experimental a serem relidos e o banco de dados interno que descreve o Visual Studio a ser reconstruído.

Durante o processo de desenvolvimento, é possível que vários projetos VSPackage sejam criados e registados no hive de registro de experimentação, o que pode levar a uma confusão no IDE. Para corrigir isso, você pode redefinir o hive experimental para as configurações padrão para remover todos os VSPackages registrados e quaisquer alterações que eles possam ter feito no IDE. Para redefinir o hive experimental, use a aplicação CreateExpInstance.exe que vem com o SDK do Visual Studio. Pode encontrá-lo em:

%PROGRAMFILES(x86)%\Visual Studio\<version> SDK\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe

Execute a ferramenta usando o comando CreateExpInstance /Reset. Lembre-se de que esta ferramenta remove do hive experimental todos os VSPackages registrados que não são normalmente instalados com o Visual Studio.