Registrieren eines Projekttyps
Wenn Sie einen neuen Projekttyp erstellen, müssen Sie Registrierungseinträge erstellen, mit denen Visual Studio Ihren Projekttyp erkennen und bearbeiten kann. Normalerweise erstellen Sie diese Registrierungseinträge mithilfe einer Registrierungsskriptdatei (.rgs).
Im folgenden Beispiel stellen die Anweisungen aus der Registrierung standardmäßige Pfade und Daten bereit, gefolgt von einer Tabelle, die Einträge aus dem Registrierungsskript für jede Anweisung enthält. Die Tabellen enthalten die Skripteinträge und zusätzliche Informationen zu den Anweisungen.
Hinweis
Die folgenden Registrierungsinformationen sind ein Beispiel für den Typ und die Zwecke der Einträge in den Registrierungsskripts, die Sie schreiben, um Ihren Projekttyp zu registrieren. Ihre tatsächlichen Einträge und deren Verwendung können je nach den spezifischen Anforderungen Ihres Projekttyps variieren. Sie sollten die verfügbaren Beispiele überprüfen, um einen zu finden, der dem Typ des Projekts ähnelt, das Sie entwickeln, und dann das Registrierungsskript für dieses Beispiel überprüfen.
Die folgenden Beispiele stammen aus HKEY_CLASSES_ROOT.
Beispiel 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\""
Name | Typ | Daten | Beschreibung |
---|---|---|---|
@ |
REG_SZ | FigPrjFile |
Name und Beschreibung der Projekttypdateien mit der Erweiterung ".figp". |
Content Type |
REG_SZ | Text/plain |
Inhaltstyp für die Projektdateien. |
NullFile |
REG_SZ | Null |
|
@ |
REG_SZ | %MODULE%,-206 |
Standardsymbol, das für das Projekt dieses Typs verwendet wird. Die %MODULE%-Anweisung wird in der Registrierung am Standardspeicherort der Projekttyp-DLL abgeschlossen. |
@ |
REG_SZ | &Open in Visual Studio |
Standardanwendung, in der dieser Projekttyp geöffnet wird. |
@ |
REG_SZ | devenv.exe "%1" |
Standardbefehl, der ausgeführt wird, wenn ein Projekt dieses Typs geöffnet wird. |
Die folgenden Beispiele stammen aus HKEY_LOCAL_MACHINE und befinden sich in der Registrierung unter dem Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages].
Beispiel 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"
Name | Typ | Daten | Beschreibung |
---|---|---|---|
@ (Standard) |
REG_SZ | FigPrj Project VSPackage |
Lokalisierbarer Name dieses registrierten VSPackage (Projekttyp). |
InprocServer32 |
REG_SZ | %MODULE% |
Pfad der Projekttyp-DLL. Die IDE lädt diese DLL und übergibt die VSPackage CLSID, um DllGetClassObject IClassFactory das Objekt zu erstellen IVsPackage . |
CompanyName |
REG_SZ | Microsoft |
Name des Unternehmens, das den Projekttyp entwickelt hat. |
ProductName |
REG_SZ | Figure Project Sample |
Name für den Projekttyp. |
ProductVersion |
REG_SZ | 9.0 |
Versionsnummer der Projekttypversion. |
MinEdition |
REG_SZ | professional |
Edition der registrierten VSPackage. |
ID |
REG_DWORD | %IDS_PACKAGE_LOAD_KEY% |
Der Paketladeschlüssel für das Projekt VSPackage. Der Schlüssel wird überprüft, wenn ein Projekt geladen wird, nachdem die Umgebung gestartet wurde. |
DllName |
REG_SZ | %RESOURCE_DLL% |
Dateiname der Satelliten-DLL, die lokalisierte Ressourcen für den Projekttyp enthält. |
Path |
REG_SZ | %RESOURCE_PATH% |
Pfad der Satelliten-DLL. |
FigProjectsEvents |
REG_SZ | Siehe Anweisung für Wert. | Bestimmt die für dieses Automatisierungsereignis zurückgegebene Textzeichenfolge. |
FigProjectItemsEvents |
REG_SZ | Siehe Anweisung für Wert. | Bestimmt die für dieses Automatisierungsereignis zurückgegebene Textzeichenfolge. |
Alle folgenden Beispiele befinden sich in der Registrierung unter dem Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].
Beispiel 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
Name | Typ | Daten | Beschreibung |
---|---|---|---|
@ |
REG_SZ | FigPrj Project |
Standardname von Projekten dieses Typs. |
DisplayName |
REG_SZ | #%IDS_PROJECT_TYPE% |
Ressourcen-ID des Namens, der aus der Satelliten-DLL abgerufen werden soll, die unter "Pakete" registriert ist. |
Package |
REG_SZ | %CLSID_Package% |
Klassen-ID der unter "Pakete" registrierten VSPackage. |
ProjectTemplatesDir |
REG_SZ | %TEMPLATE_PATH%\FigPrjProjects |
Standardpfad der Project-Vorlagendateien. Dies sind die Dateien, die von der Vorlage "Neues Projekt" angezeigt werden. |
ItemTemplatesDir |
REG_SZ | %TEMPLATE_PATH% \FigPrjProjectItems |
Standardpfad der Projektelementvorlagendateien. Dies sind die Dateien, die von der Vorlage "Neues Element hinzufügen" angezeigt werden. |
DisplayProjectFileExtensions |
REG_SZ | #%IDS_DISPLAY_PROJ_FILE_EXT% |
Ermöglicht der IDE die Implementierung des Dialogfelds "Öffnen ". |
PossibleProjectExtensions |
REG_SZ | figp |
Wird von der IDE verwendet, um zu bestimmen, ob das geöffnete Projekt von diesem Projekttyp verarbeitet wird (Projektfactory). Das Format für mehrere Einträge ist eine durch Semikolons getrennte Liste. Beispiel: "vdproj; vdp". |
DefaultProjectExtension |
REG_SZ | .figp |
Wird von der IDE als Standarddateierweiterung für den Vorgang "Speichern unter" verwendet. |
Filter Settings |
REG_DWORD | Verschiedene, siehe Anweisungen und Kommentare in der folgenden Tabelle. | Diese Einstellungen werden verwendet, um die verschiedenen Filter zum Anzeigen von Dateien in Benutzeroberflächendialogfeldern festzulegen. |
@ |
REG_SZ | #%IDS_ADDITEM_TEMPLATES_ENTRY% |
Ressourcen-ID für "Elementvorlagen hinzufügen". |
TemplatesDir |
REG_SZ | %TEMPLATE_PATH%\FigPrjProjectItems |
Pfad der Projektelemente, die im Dialogfeld für die Vorlage "Neues Element hinzufügen" angezeigt werden. |
SortPriority |
REG_DWORD | 100 (vcprx64) |
Bestimmt die Sortierreihenfolge im Strukturknoten der Dateien, die im Dialogfeld "Neues Element hinzufügen" angezeigt werden. |
In der folgenden Tabelle sind die Filteroptionen aufgeführt, die im vorherigen Codesegment verfügbar sind.
Filteroption | Beschreibung |
---|---|
CommonFindFilesFilter |
Gibt an, dass der Filter eines der allgemeinen Filter im Dialogfeld "In Dateien suchen" ist. Die allgemeinen Filter werden in der Filterliste aufgeführt, bevor die Filter nicht als häufig gekennzeichnet sind. |
CommonOpenFilesFilter |
Gibt an, dass der Filter eines der allgemeinen Filter im Dialogfeld "Datei öffnen" ist. Die allgemeinen Filter werden in der Filterliste aufgeführt, bevor die Filter nicht als häufig gekennzeichnet sind. |
FindInFilesFilter |
Gibt an, dass der Filter eines der Filter im Dialogfeld "In Dateien suchen" ist und nach den allgemeinen Filtern aufgelistet wird. |
NotOpenFileFilter |
Gibt an, dass der Filter nicht im Dialogfeld "Datei öffnen" verwendet wird. |
NotAddExistingItemFilter |
Gibt an, dass der Filter nicht im Dialogfeld "Vorhandenes Element hinzufügen" verwendet wird. |
Wenn für einen Filter kein oder mehrere dieser Flags festgelegt sind, wird der Filter im Dialogfeld "Vorhandenes Element hinzufügen" und im Dialogfeld "Datei öffnen" verwendet, nachdem die allgemeinen Filter aufgelistet wurden. Der Filter wird im Dialogfeld "In Dateien suchen" nicht verwendet.
Alle folgenden Beispiele befinden sich in der Registrierung unter dem Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].
Beispiel 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
Name | Typ | Daten | Beschreibung |
---|---|---|---|
@ |
REG_SZ | #%IDS_NEWPROJ_ TEMPLATES_ENTRY% |
Ressourcen-ID für neue Projektvorlagen. |
TemplatesDir |
REG_SZ | %TEMPLATE_PATH%\FigPrjProjects |
Standardpfad für Projekte des registrierten Projekttyps. |
SortPriority |
REG_DWORD | 41 (x29) |
Legt die Sortierreihenfolge von Projekten fest, die im Dialogfeld "Neue Projekte" angezeigt werden. |
NewProjectDialogOnly |
REG_DWORD | 0 |
0 gibt an, dass Projekte dieses Typs nur im Dialogfeld "Neues Projekt" angezeigt werden. |
Alle folgenden Beispiele befinden sich in der Registrierung unter dem Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].
Beispiel 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
Name | Typ | Daten | Beschreibung |
---|---|---|---|
@ |
REG_SZ | Keine | Standardwert, der angibt, dass die folgenden Einträge für die Projekteinträge "Miscellaneous Files" gelten. |
@ |
REG_SZ | #%IDS_ADDITEM_TEMPLATES_ENTRY% |
Ressourcen-ID-Wert für die Vorlagendateien "Neue Elemente hinzufügen". |
TemplatesDir |
REG_SZ | %TEMPLATE_PATH%\FigPrjProjectItems |
Standardpfad der Elemente, die im Dialogfeld "Neues Element hinzufügen" angezeigt werden. |
SortPriority |
REG_DWORD | 100 (vcprx64) |
Richtet die Sortierreihenfolge für die Anzeige im Strukturknoten des Dialogfelds "Neues Element hinzufügen" ein. |
Das folgende Beispiel befindet sich in der Registrierung unter dem Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus].
Beispiel 6
"{ACEF4EB2-57CF-11D2-96F4-000000000000}"=",1000,1"
Der Menüeintrag verweist auf die IDE auf die Ressource, die zum Abrufen der Menüinformationen verwendet wird. Wenn diese Daten in die Menüdatenbank zusammengeführt wurden, wird derselbe Schlüssel im Abschnitt "MenusMerged" der Registrierung hinzugefügt. Das VSPackage sollte nichts direkt im Abschnitt "MenusMerged" ändern. Im Feld "Daten" in der folgenden Tabelle gibt es drei durch Trennzeichen getrennte Felder. Das erste Feld identifiziert einen vollständigen Pfad einer Menüressourcendatei:
Wenn das erste Feld nicht angegeben wird, wird die Menüressource aus der Satelliten-DLL geladen, die von der VSPackage-GUID identifiziert wird.
Das zweite Feld identifiziert eine Menüressourcen-ID des Typs CTMENU:
Wenn die Ressourcen-ID angegeben ist und der Dateipfad vom ersten Parameter bereitgestellt wird, wird eine Menüressource aus dem vollständigen Dateipfad geladen.
Wenn die Ressourcen-ID angegeben wird, der Dateipfad jedoch nicht ist, wird die Menüressource aus der Satelliten-DLL geladen.
Wenn der vollständige Dateipfad angegeben und die Ressourcen-ID weggelassen wird, wird erwartet, dass die zu ladende Datei eine CTO-Datei ist.
Das letzte Feld identifiziert die Versionsnummer für die CTMENU-Ressource. Sie können das Menü erneut zusammenführen, indem Sie die Versionsnummer ändern.
Name | Typ | Daten | Beschreibung |
---|---|---|---|
%CLSID_Package% | REG_SZ | ,1000,1 |
Die Ressource zum Abrufen der Menüinformationen. |
Alle folgenden Beispiele befinden sich in der Registrierung unter dem Schlüssel [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
Name | Typ | Daten | Beschreibung |
---|---|---|---|
@ |
REG_SZ | #%IDS_NEWPROJ_TEMPLATES_ENTRY% |
Ressourcen-ID-Wert für die Projektvorlagen "Zahlen projektneues Projekt". |
TemplatesDir |
REG_SZ | %TEMPLATE_PATH%\FigPrjProjects |
Standardpfad des Verzeichnisses "Neue Projekte". Elemente in diesem Verzeichnis werden im Dialogfeld "Neuer Projekt-Assistent " angezeigt. |
SortPriority |
REG_DWORD | 41 (x29) |
Legt die Reihenfolge fest, in der Projekte im Strukturknoten des Dialogfelds "Neues Projekt " angezeigt werden. |
NewProjectDialogOnly |
REG_DWORD | 0 |
0 gibt an, dass Projekte dieses Typs nur im Dialogfeld "Neues Projekt " angezeigt werden. |
Das folgende Beispiel befindet sich in der Registrierung unter dem Schlüssel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts].
\FiguresProductSample
"Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
"UseInterface"=dword:00000001
Name | Typ | Daten | Beschreibung |
---|---|---|---|
Package |
REG_SZ | %CLSID_Package% |
Klassen-ID der registrierten VSPackage. |
UseInterface |
REG_DWORD | 1 |
1 gibt an, dass die Benutzeroberfläche für die Interaktion mit diesem Projekt verwendet wird. 0 gibt an, dass keine Benutzeroberfläche vorhanden ist. |
Die VSZ-Dateien, die neue Projekttypen steuern, enthalten häufig einen RELATIVE_PATH Eintrag. Dieser Pfad ist relativ zum Unter \ProductDir-Eintrag des Projekttyps im folgenden Setupschlüssel angegeben:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Exp\Setup
Beispielsweise fügen die Enterprise Frameworks-Projektvorlagen die folgenden Registrierungseinträge hinzu:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Exp\Setup\EF\ProductDir = C:\Programme\Microsoft Visual Studio\EnterpriseFrameworks\
Das bedeutet, wenn Sie einen PROJECT_TYPE=EF-Eintrag in die VSZ-Datei einschließen, findet die Umgebung Ihre VSZ-Dateien im zuvor angegebenen ProductDir-Verzeichnis.