Compartilhar via


Arquivos de descrição do diretório de modelo (.Vsdir)

Um arquivo de descrição do diretório de modelo (.vsdir) é um arquivo de texto que permite que o IDE (ambiente de desenvolvimento integrado) exiba pastas, arquivos .vsz do assistente e arquivos de modelo associados ao projeto em caixas de diálogo. O conteúdo inclui um registro por arquivo ou pasta. Todos os arquivos .vsdir em um local referenciado são mesclados, embora apenas um arquivo .vsdir seja geralmente fornecido para descrever várias pastas, assistentes ou arquivos de modelo.

Pastas (subdiretórios), arquivos referenciados no arquivo .vsdir e o próprio arquivo .vsdir estão todos localizados no mesmo diretório. Quando o IDE executa um assistente ou exibe uma pasta ou arquivo nas caixas de diálogo Novo Projeto ou Adicionar Novo Item , o IDE examina o diretório que contém os arquivos executados para determinar se um arquivo .vsdir está presente. Se um arquivo .vsdir for encontrado, o IDE o lerá para determinar se ele contém uma entrada para a pasta ou arquivo executado ou exibido. Se uma entrada for encontrada, o IDE usará as informações na execução do assistente ou na exibição do conteúdo.

O exemplo de código a seguir é do arquivo SourceFiles.vsdir localizado na chave do Registro <EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems\Source_Files:

HeaderFile.h|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#125|130|#126|0|0|0|#127
SourceFile.cpp|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#122|110|#123|0|0|0|#124

Nesse caso, dois registros estão em um arquivo. Uma nova linha (símbolo de retorno de carro) separa cada registro. Cada linha representa um tipo de arquivo diferente. Um caractere pipe (|) separa campos em cada registro. Um único diretório pode conter vários arquivos .vsdir que têm nomes de arquivo diferentes ou você pode ter um arquivo .vsdir para cada tipo de arquivo.

Fields

A tabela a seguir lista os campos especificados para cada registro.

Campo Description
Nome do caminho relativo (RelPathName) O nome da pasta, modelo ou arquivo .vsz, como HeaderFile.h ou MyWizard.vsz. Esse campo também pode ser um nome usado para representar uma pasta.
{clsidPackage} O GUID do VSPackage que permite o acesso a cadeias de caracteres localizadas, como LocalizedName, Description, IconResourceId e SuggestedBaseName, nos recursos da DLL (biblioteca de links dinâmicos satélite) do VSPackage. IconResourceId aplica-se se DLLPath não for fornecido. Nota: Esse campo é opcional, a menos que um ou mais dos campos anteriores sejam um identificador de recurso. Esse campo normalmente está em branco para arquivos .vsdir que correspondem a assistentes de terceiros que não localizam seu texto.
LocalizedName O nome localizado do arquivo de template ou assistente. Esse campo pode ser uma cadeia de caracteres ou um identificador de recurso do formulário "#ResID". Esse nome é exibido na caixa de diálogo Adicionar Novo Item . Nota: Se LocalizedName for um identificador de recurso, {clsidPackage} será necessário.
SortPriority Um número inteiro que representa a prioridade relativa deste modelo de arquivo ou assistente. Por exemplo, se este item tiver um valor de 1, esse item será exibido ao lado de outros itens com um valor de 1 e à frente de todos os itens com um valor de classificação 2 ou maior.

A prioridade de classificação é relativa aos itens no mesmo diretório. Pode haver mais de um arquivo .vsdir no mesmo diretório. Nesse caso, os itens de todos .Os arquivos vsdir nesse diretório são mesclados. Os itens com a mesma prioridade são listados na ordem lexicográfica que não diferencia maiúsculas de minúsculas do nome exibido. A _wcsicmp função é usada para ordenar os itens.

Os itens não descritos nos arquivos .vsdir incluem um número de prioridade maior que o número de prioridade mais alto listado nos arquivos .vsdir. O resultado é que esses itens estão no final da lista exibida, independentemente de seu nome.
Description A descrição localizada do arquivo de modelo ou assistente de configuração. Esse campo pode ser uma cadeia de caracteres ou um identificador de recurso do formulário "#ResID". Essa cadeia de caracteres aparece na caixa de diálogo Novo Projeto ou Adicionar Novo Item quando o item é selecionado.
DLLPath ou {clsidPackage} Usado para carregar um ícone para o arquivo de modelo ou assistente. O ícone é carregado como um recurso de um arquivo .dll ou .exe usando o IconResourceId. Esse arquivo .dll ou .exe pode ser identificado usando um caminho completo ou usando um GUID de um VSPackage. A DLL de implementação do VSPackage é usada para carregar o ícone (não a DLL satélite).
IconResourceId O identificador de recurso na DLL ou DLL de implementação do VSPackage que determina o ícone a ser exibido.
Sinalizadores (__VSDIRFLAGS) Usado para desabilitar ou habilitar os campos Nome e Local na caixa de diálogo Adicionar Novo Item . O valor do campo Sinalizadores é o equivalente decimal da combinação de sinalizadores de bits necessários.

Quando um usuário seleciona um item na guia Novo , o projeto determina se o campo Nome e o campo Local são mostrados quando a caixa de diálogo Adicionar Novo Item é exibida pela primeira vez. Um item, por meio de um arquivo .vsdir, só pode controlar se os campos estão habilitados versus desabilitados quando o item é selecionado.
NomeBaseSugerido Representa o nome padrão do arquivo, assistente ou modelo. Esse campo é uma cadeia de caracteres ou um identificador de recurso do formulário "#ResID". O IDE usa esse valor para fornecer um nome padrão para o item. Esse valor base é acrescentado com um valor inteiro para tornar o nome exclusivo, como MyFile21.asp.

Na lista anterior, Description, DLLPath, IconResourceId, Flags e SuggestedBaseNumber aplicam-se somente a arquivos de template e wizard. Esses campos não se aplicam a pastas. Esse fato é ilustrado no código no arquivo BscPrjProjectItems na chave de registro <EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems. Esse arquivo contém três registros (um para cada pasta) com quatro campos para cada registro: RelPathName, {clsidPackage}, LocalizedName e SortPriority.

General&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#110&#124;100

Source_Files&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#111&#124;110

Env&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#112&#124;120

Ao criar um arquivo de assistente, você também deve considerar os seguintes problemas.

  • Qualquer campo não necessário para o qual não haja dados significativos deve conter um 0 (zero) como um espaço reservado.

  • Se nenhum nome localizado for fornecido, utilizar-se-á o nome do caminho relativo no arquivo do assistente.

  • DLLPath tem precedência sobre clsidPackage para a localização do ícone.

  • Se nenhum ícone for definido, o IDE substituirá o ícone padrão por um arquivo que tenha essa extensão.

  • Se nenhum nome base sugerido for fornecido, 'Project' será usado.

  • Se você excluir os arquivos . vsz, pastas ou arquivos de modelo, você também deve remover seus registros associados do arquivo .vsdir.