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.