Arquivos de descrição do diretório de modelo (.Vsdir)
Um arquivo de descrição de diretório de modelo (.vsdir) é um arquivo de texto que permite que o ambiente de desenvolvimento integrado (IDE) exiba pastas, arquivos .vsz do assistente e arquivos de modelo associados ao seu 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 que são 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 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 (caractere de retorno de carro) separa cada registro. Cada linha representa um tipo de arquivo diferente. Um caractere pipe (|) separa os campos em cada registro. Um único diretório pode conter vários arquivos .vsdir com nomes de arquivo diferentes ou você pode ter um arquivo .vsdir para cada tipo de arquivo.
Campos
A tabela a seguir lista os campos especificados para cada registro.
Campo | Descrição |
---|---|
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 biblioteca de vínculo dinâmico (DLL) via satélite do VSPackage. IconResourceId aplica-se se DLLPath não for fornecido. Nota: Este campo é opcional, a menos que um ou mais dos campos anteriores seja um identificador de recurso. Esse campo geralmente fica em branco para arquivos .vsdir que correspondem a assistentes de terceiros que não localizam seu texto. |
LocalizedName | O nome localizado do arquivo de modelo ou assistente. Esse campo pode ser uma cadeia de caracteres ou um identificador de recurso do formato "#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 inteiro que representa a prioridade relativa deste arquivo de modelo ou assistente. Por exemplo, se esse 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 de 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 .Os arquivos VSDIR nesse diretório são mesclados. Os itens com a mesma prioridade são listados em ordem lexicográfica sem distinção entre maiúsculas e 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 do 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. |
Descrição | A descrição localizada do arquivo de modelo ou assistente. Esse campo pode ser uma cadeia de caracteres ou um identificador de recurso do formato "#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 VSPackage que determina o ícone a ser exibido. |
Bandeiras (__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, pode controlar somente se os campos estão habilitados ou desabilitados quando o item é selecionado. |
SuggestedBaseName | Representa o nome padrão para o arquivo, assistente ou modelo. Este campo é uma cadeia de caracteres ou um identificador de recurso do formato "#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 se aplicam somente a arquivos de modelo e assistente. Esses campos não se aplicam a pastas. Esse fato é ilustrado no código no arquivo BscPrjProjectItems na <chave do 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|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#110|100 Source_Files|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#111|110 Env|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#112|120 |
Ao criar um arquivo de assistente, você também deve considerar os seguintes problemas.
Qualquer campo não obrigatório para o qual não haja dados significativos deve conter um 0 (zero) como espaço reservado.
Se nenhum nome localizado for fornecido, o nome do caminho relativo será usado no arquivo do assistente.
DLLPath substitui clsidPackage para o local 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, 'Projeto' será usado.
Se você excluir os arquivos, pastas ou arquivos de modelo .vsz, também deverá remover seus registros associados do arquivo .vsdir.