Compartir a través de


Archivos de descripción del directorio de plantilla (.Vsdir)

Un archivo de descripción de directorio de plantilla (.vsdir) es un archivo de texto que permite al entorno de desarrollo integrado (IDE) mostrar carpetas, archivos .vsz del asistente y archivos de plantilla asociados con el proyecto en cuadros de diálogo. El contenido incluye un registro por archivo o carpeta. Todos los archivos .vsdir de una ubicación a la que se hace referencia se combinan, aunque solo se proporciona un archivo .vsdir para describir varias carpetas, asistentes o archivos de plantilla.

Carpetas (subdirectorios), archivos a los que se hace referencia en el archivo .vsdir y el propio archivo .vsdir se encuentran en el mismo directorio. Cuando el IDE ejecuta un asistente o muestra una carpeta o un archivo en los cuadros de diálogo Nuevo proyecto o Agregar nuevo elemento , el IDE examina el directorio que contiene los archivos ejecutados para determinar si hay un archivo .vsdir presente. Si se encuentra un archivo .vsdir, el IDE lo lee para determinar si contiene una entrada para la carpeta o el archivo ejecutados o mostrados. Si se encuentra una entrada, el IDE usa la información en la ejecución del asistente o la presentación del contenido.

El ejemplo de código siguiente procede del archivo SourceFiles.vsdir en la clave del <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

En este caso, dos registros están en un archivo. Una nueva línea (carácter de retorno de carro) separa cada registro. Cada línea representa un tipo de archivo diferente. Un carácter de canalización (|) separa los campos de cada registro. Un único directorio puede contener varios archivos .vsdir que tienen nombres de archivo diferentes o puede tener un archivo .vsdir para cada tipo de archivo.

Fields

En la tabla siguiente se enumeran los campos especificados para cada registro.

Campo Descripción
Nombre de ruta de acceso relativa (RelPathName) Nombre de la carpeta, plantilla o archivo .vsz, como HeaderFile.h o MyWizard.vsz. Este campo también puede ser un nombre que se usa para representar una carpeta.
{clsidPackage} GUID del VSPackage que permite el acceso a cadenas localizadas, como LocalizedName, Description, IconResourceId y SuggestedBaseName, en los recursos de la biblioteca de vínculos dinámicos (DLL) satélite de VSPackage. IconResourceId se aplica si no se proporciona DLLPath. Nota: Este campo es opcional a menos que uno o varios de los campos anteriores sean un identificador de recurso. Este campo suele estar en blanco para los archivos .vsdir que corresponden a asistentes de terceros que no localizan su texto.
LocalizedName Nombre localizado del archivo de plantilla o del asistente. Este campo puede ser una cadena o un identificador de recurso del formulario "#ResID". Este nombre se muestra en el cuadro de diálogo Agregar nuevo elemento . Nota: Si LocalizedName es un identificador de recurso, se requiere {clsidPackage}.
SortPriority Entero que representa la prioridad relativa de este archivo de plantilla o asistente. Por ejemplo, si este elemento tiene un valor de 1, este elemento se muestra junto a otros elementos con un valor de 1 y por delante de todos los elementos con un valor de 2 o mayor.

La prioridad de ordenación es relativa a los elementos del mismo directorio. Puede haber más de un archivo .vsdir en el mismo directorio. En ese caso, los elementos de todo .Los archivos vsdir de ese directorio se combinan. Los elementos con la misma prioridad se enumeran en orden lexicográfico sin distinción entre mayúsculas y minúsculas del nombre mostrado. La _wcsicmp función se usa para ordenar los elementos.

Los elementos no descritos en los archivos .vsdir incluyen un número de prioridad mayor que el número de prioridad más alto enumerado en los archivos .vsdir. El resultado es que estos elementos están al final de la lista mostrada independientemente de su nombre.
Descripción Descripción localizada del archivo de plantilla o del asistente. Este campo puede ser una cadena o un identificador de recurso del formulario "#ResID". Esta cadena aparece en el cuadro de diálogo Nuevo proyecto o Agregar nuevo elemento cuando se selecciona el elemento.
DLLPath o {clsidPackage} Se usa para cargar un icono para el archivo de plantilla o el asistente. El icono se carga como un recurso fuera de un archivo .dll o .exe mediante IconResourceId. Este archivo .dll o .exe se puede identificar mediante una ruta de acceso completa o mediante un GUID de un VSPackage. La DLL de implementación del VSPackage se usa para cargar el icono (no el archivo DLL satélite).
IconResourceId Identificador de recursos en el archivo DLL o en el archivo DLL de implementación de VSPackage que determina el icono que se va a mostrar.
Marcas (__VSDIRFLAGS) Se usa para deshabilitar o habilitar los campos Nombre y Ubicación en el cuadro de diálogo Agregar nuevo elemento . El valor del campo Marcas es el equivalente decimal de la combinación de marcas de bits necesarias.

Cuando un usuario selecciona un elemento en la pestaña Nuevo , el proyecto determina si el campo Nombre y el campo Ubicación se muestran cuando se muestra el cuadro de diálogo Agregar nuevo elemento por primera vez. Un elemento, a través de un archivo .vsdir, solo puede controlar si los campos están habilitados frente a deshabilitados cuando se selecciona el elemento.
SuggestedBaseName Representa el nombre predeterminado del archivo, el asistente o la plantilla. Este campo es una cadena o un identificador de recurso del formulario "#ResID". El IDE usa este valor para proporcionar un nombre predeterminado para el elemento. Este valor base se anexa con un valor entero para que el nombre sea único, como MyFile21.asp.

En la lista anterior, Description, DLLPath, IconResourceId, Flags y SuggestedBaseNumber solo se aplican a los archivos de plantilla y asistente. Estos campos no se aplican a las carpetas. Este hecho se ilustra en el código del archivo BscPrjProjectItems en la clave del <Registro EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems. Este archivo contiene tres registros (uno para cada carpeta) con cuatro campos para cada registro: RelPathName, {clsidPackage}, LocalizedName y 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

Al crear un archivo del asistente, también debe tener en cuenta los siguientes problemas.

  • Los campos opcionales para los que no existen datos significativos tienen que contener un cero (0) como marcador de posición.

  • Si no se proporciona ningún nombre localizado, el nombre de la ruta de acceso relativa se usa en el archivo del asistente.

  • DLLPath invalida clsidPackage para la ubicación del icono.

  • Si no se define ningún icono, el IDE sustituye el icono predeterminado de un archivo que tiene esa extensión.

  • Si no se proporciona ningún nombre base sugerido, se usa "Project".

  • Si elimina los archivos ,vsz, carpetas o archivos de plantilla, también debe quitar sus registros asociados del archivo .vsdir.