Freigeben über


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 DllGetClassObjectIClassFactory 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.