Registro de un tipo de proyecto

Al crear un nuevo tipo de proyecto, debe crear entradas del Registro que permitan a Visual Studio reconocer y trabajar con el tipo de proyecto. Normalmente, estas entradas del Registro se crean mediante un archivo de script del Registro (.rgs).

En el ejemplo siguiente, las instrucciones del Registro proporcionan rutas de acceso y datos predeterminados cuando procede, seguidos de una tabla que contiene entradas del script del Registro para cada instrucción. Las tablas proporcionan las entradas del script e información adicional sobre las instrucciones .

Nota:

La siguiente información del Registro está pensada para ser un ejemplo del tipo y los propósitos de las entradas de los scripts del Registro que va a escribir para registrar el tipo de proyecto. Las entradas reales y sus usos pueden variar en función de los requisitos específicos del tipo de proyecto. Debe revisar los ejemplos disponibles para encontrar uno que se parezca estrechamente al tipo de proyecto que está desarrollando y, a continuación, revisar el script del Registro para ese ejemplo.

Los ejemplos siguientes son de HKEY_CLASSES_ROOT.

Ejemplo 1

\.figp
   @="FigPrjFile"
   "Content Type"="text/plain"
\.figp\ShellNew
   "NullFile"=""
\FigPrjFile
   @="Figure Project File"
\DefaultIcon
   @="<Visual Studio SDK installation path>\\9.0VSIntegration\\SomeFolder\\FigPkgs\\FigPrj\\Debug\\FigPrj.dll,-206"
\shell\open
   @="&Open in Visual Studio"
\shell\open\command
   @="devenv.exe \"%1\""
Nombre Tipo data Descripción
@ REG_SZ FigPrjFile Nombre y descripción de los archivos de tipo de proyecto que tienen la extensión .figp.
Content Type REG_SZ Text/plain Tipo de contenido para los archivos del proyecto.
NullFile REG_SZ Null
@ REG_SZ %MODULE%,-206 Icono predeterminado usado para el proyecto de este tipo. La instrucción %MODULE% se completa en el Registro en la ubicación predeterminada del archivo DLL de tipo de proyecto.
@ REG_SZ &Open in Visual Studio Aplicación predeterminada en la que se abrirá este tipo de proyecto.
@ REG_SZ devenv.exe "%1" Comando predeterminado que se ejecutará cuando se abra un proyecto de este tipo.

Los ejemplos siguientes proceden de HKEY_LOCAL_MACHINE y se encuentran en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages].

Ejemplo 2

\{ACEF4EB2-57CF-11D2-96F4-000000000000} (The CLSID for the VSPackage)
   @="FigPrj Project Package"
   "InprocServer32"="9.0<Visual Studio SDK installation path>\\VSIntegration\\Archive\\FigPkgs\\FigPrj\\                      Debug\\FigPrj.dll"
   "CompanyName"="Microsoft"
   "ProductName"="Figure Project Sample"
   "ProductVersion"="9.0"
   "MinEdition"="professional"
   "ID"=dword:00000001
\{ACEF4EB2-57CF-11D2-96F4-000000000000}\SatelliteDLL
   "DllName"="FigPrjUI.dll"
   "Path"="9.0<Visual Studio SDK installation path>\\VSIntegration\\Archive\\FigPkgs\\FigPrj\\Debug\\"
\{ACEF4EB2-57CF-11D2-96F4-000000000000}\Automation
   "FigProjects"=""
\{ACEF4EB2-57CF-11D2-96F4-000000000000}\AutomationEvents
   "FigProjectsEvents"="Returns the FigProjectsEvents Object"
   "FigProjectItemsEvents"="Returns the FigProjectItemsEvents Object"
Nombre Tipo data Descripción
@ (Valor predeterminado) REG_SZ FigPrj Project VSPackage Nombre localizable de este VSPackage registrado (tipo de proyecto).
InprocServer32 REG_SZ %MODULE% Ruta de acceso del archivo DLL de tipo de proyecto. El IDE carga este archivo DLL y pasa el CLSID de VSPackage para DllGetClassObject obtener IClassFactory para construir el IVsPackage objeto .
CompanyName REG_SZ Microsoft Nombre de la empresa que desarrolló el tipo de proyecto.
ProductName REG_SZ Figure Project Sample Nombre del tipo de proyecto.
ProductVersion REG_SZ 9.0 Número de versión de la versión del tipo de proyecto.
MinEdition REG_SZ professional Edición del VSPackage que se está registrando.
ID REG_DWORD %IDS_PACKAGE_LOAD_KEY% Clave de carga del paquete para el proyecto VSPackage. La clave se valida cuando se carga un proyecto una vez iniciado el entorno.
DllName REG_SZ %RESOURCE_DLL% Nombre de archivo del archivo DLL satélite que contiene recursos localizados para el tipo de proyecto.
Path REG_SZ %RESOURCE_PATH% Ruta de acceso del archivo DLL satélite.
FigProjectsEvents REG_SZ Consulte la instrucción para ver el valor. Determina la cadena de texto devuelta para este evento de automatización.
FigProjectItemsEvents REG_SZ Consulte la instrucción para ver el valor. Determina la cadena de texto devuelta para este evento de automatización.

Todos los ejemplos siguientes se encuentran en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Ejemplo 3

\{C061DB26-5833-11D2-96F5-000000000000} (The CLSID for projects of this type)
   @="FigPrj Project"
   "DisplayName"="#2"
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
   "ProjectTemplatesDir"="C:\\Program Files\\VSIP 9.0\\EnvSDK\\FigPkgs\\                           FigPrj\\FigPrjProjects"
   "ItemTemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\                           FigPrjProjectItems"
   "DisplayProjectFileExtensions"="#3"
   "PossibleProjectExtensions"="figp"
   "DefaultProjectExtension"=".figp"
\{C061DB26-5833-11D2-96F5-000000000000}\Filters\1       (Folder 1 contains settings for Open Files filters.)
   @="#4"
   "CommonOpenFilesFilter"=dword:00000000
   "CommonFindFilesFilter"=dword:00000000
   "NotAddExistingItemFilter"=dword:00000000
   "FindInFilesFilter"=dword:00000000
   "NotOpenFileFilter"=dword:00000000
   "SortPriority"=dword:000003e8
\{C061DB26-5833-11D2-96F5-000000000000}\Filters\2
      (Folder 2 contains settings for Find in Files filters.)
   @="#5"
   "CommonOpenFilesFilter"=dword:00000000
   "CommonFindFilesFilter"=dword:00000000
   "NotAddExistingItemFilter"=dword:00000001
   "FindInFilesFilter"=dword:00000001
   "NotOpenFileFilter"=dword:00000000
   "SortPriority"=dword:000003e8
\{C061DB26-5833-11D2-96F5-000000000000}\AddItemTemplates\TemplateDirs\ {ACEF4EB2-57CF-11D2-96F4-000000000000}\1 (Second GUID indicates the registered project type for the Add Items templates.)
   @="#6"
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\                    FigPrjProjectItems"
   "SortPriority"=dword:00000064
Nombre Tipo data Descripción
@ REG_SZ FigPrj Project Nombre predeterminado de los proyectos de este tipo.
DisplayName REG_SZ #%IDS_PROJECT_TYPE% Identificador de recurso del nombre que se va a recuperar del archivo DLL satélite registrado en Paquetes.
Package REG_SZ %CLSID_Package% Identificador de clase del VSPackage registrado en Paquetes.
ProjectTemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Ruta de acceso predeterminada de los archivos de plantilla de proyecto. Estos son los archivos que muestra la plantilla Nuevo proyecto.
ItemTemplatesDir REG_SZ %TEMPLATE_PATH% \FigPrjProjectItems Ruta de acceso predeterminada de los archivos de plantilla de elemento de proyecto. Estos son los archivos que muestra la plantilla Agregar nuevo elemento.
DisplayProjectFileExtensions REG_SZ #%IDS_DISPLAY_PROJ_FILE_EXT% Permite al IDE implementar el cuadro de diálogo Abrir .
PossibleProjectExtensions REG_SZ figp Lo usa el IDE para determinar si este tipo de proyecto (generador de proyectos) controla el proyecto que se va a abrir. El formato de más de una entrada es una lista delimitada por punto y coma. Por ejemplo, "vdproj; vdp".
DefaultProjectExtension REG_SZ .figp Usado por el IDE como la extensión de nombre de archivo predeterminada para la operación Guardar como.
Filter Settings REG_DWORD Varias, consulte las instrucciones y los comentarios de la tabla siguiente. Esta configuración se usa para establecer los distintos filtros para mostrar archivos en cuadros de diálogo de interfaz de usuario.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Identificador de recurso para agregar plantillas de elemento.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Ruta de acceso de los elementos del proyecto que se muestran en el cuadro de diálogo para la plantilla Agregar nuevo elemento .
SortPriority REG_DWORD 100 (vcprx64) Determina el criterio de ordenación en el nodo de árbol de los archivos mostrados en el cuadro de diálogo Agregar nuevo elemento .

En la tabla siguiente se muestran las opciones Filtros disponibles en el segmento de código anterior.

Opción de filtro Descripción
CommonFindFilesFilter Indica que el filtro es uno de los filtros comunes del cuadro de diálogo Buscar en archivos . Los filtros comunes se enumeran en la lista de filtros antes de que los filtros no estén marcados como comunes.
CommonOpenFilesFilter Indica que el filtro es uno de los filtros comunes en el cuadro de diálogo Abrir archivo . Los filtros comunes se enumeran en la lista de filtros antes de que los filtros no estén marcados como comunes.
FindInFilesFilter Indica que el filtro será uno de los filtros del cuadro de diálogo Buscar en archivos y se mostrará después de los filtros comunes.
NotOpenFileFilter Indica que el filtro no se usará en el cuadro de diálogo Abrir archivo .
NotAddExistingItemFilter Indica que el filtro no se usará en el cuadro de diálogo Agregar elemento existente.

De forma predeterminada, si un filtro no tiene uno o varios de estos marcadores establecidos, el filtro se usa en el cuadro de diálogo Agregar elemento existente y el cuadro de diálogo Abrir archivo después de que aparezcan los filtros comunes. El filtro no se usa en el cuadro de diálogo Buscar en archivos .

Todos los ejemplos siguientes se encuentran en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Ejemplo 4

{FE3BBBB6-72D5-11d2-9ACE-00C04F79A2A4} (The CLSID for Enterprise Projects)
\{FE3BBBB6-72D5-11d2-9ACE-00C04F79A2A4}\AddItemTemplates\TemplateDirs\ {ACEF4EB2-57CF-11D2-96F4-000000000000}\1 (CLSID for projects of this type)
   @="#7"
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPrj\\FigPrjProjects"
   "SortPriority"=dword:00000029
   "NewProjectDialogOnly"=dword:00000000
Nombre Tipo data Descripción
@ REG_SZ #%IDS_NEWPROJ_ TEMPLATES_ENTRY% Identificador de recurso para nuevas plantillas de proyecto.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Ruta de acceso predeterminada para los proyectos del tipo de proyecto registrado.
SortPriority REG_DWORD 41 (x29) Establece el criterio de ordenación de los proyectos que se muestran en el cuadro de diálogo Asistente para nuevos proyectos.
NewProjectDialogOnly REG_DWORD 0 0 indica que los proyectos de este tipo solo se muestran en el cuadro de diálogo Nuevo proyecto.

Todos los ejemplos siguientes se encuentran en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Ejemplo 5

\{A2FE74E1-B743-11d0-AE1A-00A0C90FFFC3} (CLSID for Miscellaneous Files projects)
   @="Miscellaneous Files Project"
\AddItemTemplates\TemplateDirs\{ACEF4EB2-57CF-11D2-96F4-000000000000}\1
                                 (CLSID for Figures Project projects)
   @="#6"
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\                    FigPrjProjectItems"
   "SortPriority"=dword:00000064
Nombre Tipo data Descripción
@ REG_SZ None Valor predeterminado que indica que las siguientes entradas son para las entradas de proyectos De varios archivos.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Valor de id. de recurso para los archivos de plantilla Agregar nuevos elementos.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Ruta de acceso predeterminada de los elementos que se mostrarán en el cuadro de diálogo Agregar nuevo elemento .
SortPriority REG_DWORD 100 (vcprx64) Establece el criterio de ordenación para mostrarse en el nodo de árbol del cuadro de diálogo Agregar nuevo elemento .

El ejemplo siguiente se encuentra en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus].

Ejemplo 6

"{ACEF4EB2-57CF-11D2-96F4-000000000000}"=",1000,1"

La entrada de menú apunta el IDE al recurso usado para recuperar la información del menú. Cuando estos datos se hayan combinado en la base de datos de menús, se agregará la misma clave en la sección MenusMerged del Registro. VSPackage no debe modificar nada en la sección MenusMerged directamente. En el campo Datos de la tabla siguiente, hay tres campos separados por comas. El primer campo identifica una ruta de acceso completa de un archivo de recursos de menú:

  • Si se omite el primer campo, el recurso de menú se carga desde el archivo DLL satélite identificado por el GUID de VSPackage.

    El segundo campo identifica un identificador de recurso de menú del tipo CTMENU:

  • Si se especifica el identificador de recurso y la ruta de acceso del archivo la proporciona el primer parámetro, se carga un recurso de menú desde la ruta de acceso de archivo completa.

  • Si se proporciona el identificador de recurso, pero la ruta de acceso del archivo no es , el recurso de menú se carga desde el archivo DLL satélite.

  • Si se proporciona la ruta de acceso completa del archivo y se omite el identificador de recurso, se espera que el archivo que se cargue sea un archivo CTO.

    El último campo identifica el número de versión del recurso CTMENU. Puede volver a combinar el menú cambiando el número de versión.

Nombre Tipo data Descripción
%CLSID_Package% REG_SZ ,1000,1 Recurso para recuperar la información del menú.

Todos los ejemplos siguientes se encuentran en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\NewProjectTemplates].

\TemplateDirs\{ACEF4EB2-57CF-11D2-96F4-000000000000}\1                (CLSID for Figures Project projects)
   @="#7"
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\FigPrjProjects"
   "SortPriority"=dword:00000029
   "NewProjectDialogOnly"=dword:00000000
Nombre Tipo data Descripción
@ REG_SZ #%IDS_NEWPROJ_TEMPLATES_ENTRY% Valor de id. de recurso para las ilustraciones Proyecto nuevas plantillas de proyecto.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Ruta de acceso predeterminada del directorio Nuevos proyectos. Los elementos de este directorio se mostrarán en el cuadro de diálogo Asistente para nuevo proyecto.
SortPriority REG_DWORD 41 (x29) Establece el orden en el que se mostrarán los proyectos en el nodo de árbol del cuadro de diálogo Nuevo proyecto .
NewProjectDialogOnly REG_DWORD 0 0 indica que los proyectos de este tipo solo se muestran en el cuadro de diálogo Nuevo proyecto .

El ejemplo siguiente se encuentra en el Registro bajo la clave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts].

\FiguresProductSample
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
   "UseInterface"=dword:00000001
Nombre Tipo data Descripción
Package REG_SZ %CLSID_Package% Identificador de clase del VSPackage registrado.
UseInterface REG_DWORD 1 1 indica que la interfaz de usuario se usará para interactuar con este proyecto. 0 indica que no hay ninguna interfaz de usuario.

Los archivos.vsz que controlan los nuevos tipos de proyecto suelen contener una entrada de RELATIVE_PATH. Esta ruta de acceso es relativa a la ruta especificada en la entrada \ProductDir del tipo de proyecto en la siguiente clave de instalación:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Exp\Setup

Por ejemplo, las plantillas de proyecto de Enterprise Frameworks agregan las siguientes entradas del Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Exp\Setup\EF\ProductDir = C:\Program Files\Microsoft Visual Studio\EnterpriseFrameworks\

Esto significa que si incluye una entrada PROJECT_TYPE=EF en el archivo .vsz, el entorno busca los archivos .vsz en el directorio ProductDir especificado anteriormente.