Delen via


Een projecttype registreren

Wanneer u een nieuw projecttype maakt, moet u registervermeldingen maken waarmee Visual Studio uw projecttype kan herkennen en ermee kunnen werken. Doorgaans maakt u deze registervermeldingen met behulp van een registerscriptbestand (.rgs).

In het onderstaande voorbeeld bevatten de instructies uit het register standaardpaden en gegevens, indien van toepassing, gevolgd door een tabel die vermeldingen uit het registerscript voor elke instructie bevat. De tabellen bevatten de scriptvermeldingen en aanvullende informatie over de instructies.

Opmerking

De volgende registergegevens zijn bedoeld als voorbeeld van het type en de doeleinden van de vermeldingen in de registerscripts die u gaat schrijven om uw projecttype te registreren. Uw werkelijke vermeldingen en hun gebruik kunnen variëren op basis van de specifieke vereisten van uw projecttype. Bekijk de beschikbare voorbeelden om er een te vinden die lijkt op het type project dat u ontwikkelt en controleer vervolgens het registerscript voor dat voorbeeld.

De volgende voorbeelden zijn afkomstig uit HKEY_CLASSES_ROOT.

Voorbeeld 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\""
Naam Typologie Gegevens Description
@ REG_SZ FigPrjFile Naam en beschrijving van de projecttypebestanden met de extensie .figp.
Content Type REG_SZ Text/plain Inhoudstype voor de projectbestanden.
NullFile REG_SZ Null
@ REG_SZ %MODULE%,-206 Standaardpictogram dat wordt gebruikt voor project van dit type. De %MODULE%-verklaring wordt voltooid in het register naar de standaardlocatie van de DLL van het projecttype.
@ REG_SZ &Open in Visual Studio Standaardtoepassing waarin dit projecttype wordt geopend.
@ REG_SZ devenv.exe "%1" Standaardopdracht die wordt uitgevoerd wanneer een project van dit type wordt geopend.

De volgende voorbeelden zijn afkomstig uit HKEY_LOCAL_MACHINE en bevinden zich in het register onder de sleutel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages].

Voorbeeld 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"
Naam Typologie Gegevens Description
@ (Standaard) REG_SZ FigPrj Project VSPackage Lokaliseerbare naam van dit geregistreerde VSPackage (projecttype).
InprocServer32 REG_SZ %MODULE% Pad van het DLL-bestand van het projecttype. De IDE laadt deze DLL en geeft de VSPackage CLSID door aan DllGetClassObject, zodat IClassFactory het IVsPackage object kan construeren.
CompanyName REG_SZ Microsoft Naam van het bedrijf dat het projecttype heeft ontwikkeld.
ProductName REG_SZ Figure Project Sample Naam voor het projecttype.
ProductVersion REG_SZ 9.0 Versienummer van het release-type van het project.
MinEdition REG_SZ professional Versie van de VSPackage die wordt geregistreerd.
ID REG_DWORD %IDS_PACKAGE_LOAD_KEY% De package load-key voor het project VSPackage. De sleutel wordt gevalideerd wanneer een project wordt geladen nadat de omgeving is gestart.
DllName REG_SZ %RESOURCE_DLL% Bestandsnaam van de satelliet-DLL die gelokaliseerde resources voor het projecttype bevat.
Path REG_SZ %RESOURCE_PATH% Pad van de satelliet-DLL.
FigProjectsEvents REG_SZ Zie de verklaring voor waarde. Bepaalt de tekenreeks die voor deze automatiseringsactie wordt geretourneerd.
FigProjectItemsEvents REG_SZ Zie de verklaring voor de waarde. Bepaalt de tekenreeks die wordt geretourneerd voor deze automatiseringsgebeurtenis.

Alle volgende voorbeelden bevinden zich in het register onder de sleutel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Voorbeeld 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
Naam Typologie Gegevens Description
@ REG_SZ FigPrj Project Standaardnaam van projecten van dit type.
DisplayName REG_SZ #%IDS_PROJECT_TYPE% De resource-ID van de naam die moet worden opgehaald uit de satelliet-DLL die is geregistreerd onder pakketten.
Package REG_SZ %CLSID_Package% Klasse-ID van de VSPackage die is geregistreerd onder Packages.
ProjectTemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Standaardpad van projectsjabloonbestanden. Dit zijn de bestanden die worden weergegeven door de sjabloon Nieuw project.
ItemTemplatesDir REG_SZ %TEMPLATE_PATH% \FigPrjProjectItems Standaardpad van projectitem-sjabloonbestanden. Dit zijn de bestanden die worden weergegeven door de sjabloon Nieuw item toevoegen.
DisplayProjectFileExtensions REG_SZ #%IDS_DISPLAY_PROJ_FILE_EXT% Hiermee kan de IDE het dialoogvenster Openen implementeren.
PossibleProjectExtensions REG_SZ figp Wordt gebruikt door de IDE om te bepalen of het project dat wordt geopend, wordt verwerkt door dit projecttype (projectfactory). De indeling voor meer dan één vermelding is een door puntkomma's gescheiden lijst. Bijvoorbeeld 'vdproj; vdp'.
DefaultProjectExtension REG_SZ .figp Wordt gebruikt door de IDE als de standaardbestandsextensie voor de bewerking Opslaan als.
Filter Settings REG_DWORD Zie verklaringen en opmerkingen na de tabel. Deze instellingen worden gebruikt om de verschillende filters in te stellen voor het weergeven van bestanden in dialoogvensters van de gebruikersinterface.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Resource-ID voor toevoegen van itemsjablonen.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Pad naar de projectitems die worden weergegeven in het dialoogvenster voor de sjabloon Nieuw item toevoegen .
SortPriority REG_DWORD 100 (vcprx64) Bepaalt de sorteervolgorde in het structuurknooppunt van bestanden die worden weergegeven in het dialoogvenster Nieuw item toevoegen .

In de volgende tabel ziet u de filtersopties die beschikbaar zijn in het vorige codesegment.

Filteroptie Description
CommonFindFilesFilter Geeft aan dat het filter een van de algemene filters is in het dialoogvenster Zoeken in Bestanden . De algemene filters worden vermeld in de filterlijst voordat de filters niet als algemeen zijn gemarkeerd.
CommonOpenFilesFilter Geeft aan dat het filter een van de algemene filters is in het dialoogvenster Bestand openen. De algemene filters worden vermeld in de filterlijst voordat de filters niet als algemeen zijn gemarkeerd.
FindInFilesFilter Geeft aan dat het filter een van de filters is in het dialoogvenster Zoeken in bestanden en wordt weergegeven na de algemene filters.
NotOpenFileFilter Geeft aan dat het filter niet wordt gebruikt in het dialoogvenster Bestand openen.
NotAddExistingItemFilter Geeft aan dat het filter niet wordt gebruikt in het dialoogvenster Bestaand item toevoegen.

Als voor een filter geen of meer van deze vlaggen zijn ingesteld, wordt het filter standaard gebruikt in het dialoogvenster Bestaand item toevoegen en het dialoogvenster Bestand openen nadat de algemene filters zijn vermeld. Het filter wordt niet gebruikt in het dialoogvenster Zoeken in bestanden .

Alle volgende voorbeelden bevinden zich in het register onder de sleutel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Voorbeeld 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
Naam Typologie Gegevens Description
@ REG_SZ #%IDS_NEWPROJ_ TEMPLATES_ENTRY% Resource-ID voor nieuwe projectsjablonen.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Standaardpad voor projecten van het geregistreerde projecttype.
SortPriority REG_DWORD 41 (x29) Hiermee stelt u de sorteervolgorde van projecten in die worden weergegeven in het dialoogvenster Wizard Nieuwe projecten.
NewProjectDialogOnly REG_DWORD 0 0 geeft aan dat projecten van dit type alleen worden weergegeven in het dialoogvenster Nieuw project.

Alle volgende voorbeelden bevinden zich in het register onder de sleutel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Voorbeeld 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
Naam Typologie Gegevens Description
@ REG_SZ Geen Standaardwaarde die aangeeft dat de volgende vermeldingen voor de items van diverse bestandenprojecten zijn.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Resource-id-waarde voor de sjabloonbestanden Nieuwe items toevoegen.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Standaardpad van de items die worden weergegeven in het dialoogvenster Nieuw item toevoegen .
SortPriority REG_DWORD 100 (vcprx64) Hiermee stelt u de sorteervolgorde in voor weergave in het structuurknooppunt van het dialoogvenster Nieuw item toevoegen .

Het volgende voorbeeld bevindt zich in het register onder de sleutel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus].

Voorbeeld 6

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

De menuvermelding wijst de IDE naar de resource die wordt gebruikt om de menugegevens op te halen. Wanneer deze gegevens zijn samengevoegd in de menudatabase, wordt dezelfde sleutel toegevoegd in de sectie MenusMerged van het register. De VSPackage mag niets rechtstreeks wijzigen in de sectie Menu'sMerged. In het veld Gegevens in de volgende tabel zijn er drie door komma's gescheiden velden. Het eerste veld identificeert een volledig pad van een menubronbestand:

  • Als het eerste veld wordt weggelaten, wordt de menuresource geladen uit de satelliet-DLL die wordt geïdentificeerd door de VSPackage GUID.

    Het tweede veld identificeert een menuresource-id van het type CTMENU:

  • Als de resource-id is opgegeven en het bestandspad wordt opgegeven door de eerste parameter, wordt een menuresource geladen vanuit het volledige bestandspad.

  • Als de resource-ID is opgegeven, maar het bestandspad niet, wordt de menuresource geladen vanuit de satelliet-DLL.

  • Als het volledige bestandspad wordt opgegeven en de resource-id wordt weggelaten, is het bestand dat moet worden geladen naar verwachting een CTO-bestand.

    Het laatste veld identificeert het versienummer voor de CTMENU-resource. U kunt het menu opnieuw samenvoegen door het versienummer te wijzigen.

Naam Typologie Gegevens Description
%CLSID_Package% REG_SZ ,1000,1 De resource voor het ophalen van de menugegevens.

Alle volgende voorbeelden bevinden zich in het register onder de sleutel [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
Naam Typologie Gegevens Description
@ REG_SZ #%IDS_NEWPROJ_TEMPLATES_ENTRY% Resource-id-waarde voor de Figures Project nieuwe projectsjablonen.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Standaardpad van de map Nieuwe projecten. Items in deze map worden weergegeven in het dialoogvenster Wizard Nieuw project .
SortPriority REG_DWORD 41 (x29) Hiermee stelt u de volgorde in waarin projecten worden weergegeven in het structuurknooppunt van het dialoogvenster Nieuw project .
NewProjectDialogOnly REG_DWORD 0 0 geeft aan dat projecten van dit type alleen worden weergegeven in het dialoogvenster Nieuw project .

Het volgende voorbeeld bevindt zich in het register onder de sleutel [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts].

\FiguresProductSample
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
   "UseInterface"=dword:00000001
Naam Typologie Gegevens Description
Package REG_SZ %CLSID_Package% Klasse-id van de geregistreerde VSPackage.
UseInterface REG_DWORD 1 1 geeft aan dat de gebruikersinterface wordt gebruikt om met dit project te communiceren. 0 geeft aan dat er geen UI-interface is.

De.vsz-bestanden die nieuwe projecttypen beheren, bevatten vaak een RELATIVE_PATH vermelding. Dit pad is relatief ten opzichte van het pad dat is opgegeven onder \ProductDir-specificatie van het projecttype in de volgende Setup-sleutel:

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

De projectsjablonen voor Enterprise Frameworks voegen bijvoorbeeld de volgende registervermeldingen toe:

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

Dat betekent dat als u een PROJECT_TYPE=EF-vermelding opneemt in het VSZ-bestand, de omgeving uw .vsz-bestanden vindt in de map ProductDir die eerder is opgegeven.