Sdílet prostřednictvím


Registrace typu projektu

Při vytváření nového typu projektu musíte vytvořit položky registru, které sadě Visual Studio umožňují rozpoznat a pracovat s typem projektu. Tyto položky registru obvykle vytvoříte pomocí souboru skriptu registru (.rgs).

V následujícím příkladu příkazy z registru poskytují výchozí cesty a data, pokud je to možné, a potom tabulku, která obsahuje položky ze skriptu registru pro každý příkaz. Tabulky obsahují položky skriptu a další informace o příkazech.

Poznámka:

Následující informace registru jsou určené jako příklad typu a účelu položek ve skriptech registru, které budete psát pro registraci typu projektu. Vaše skutečné položky a jejich použití se můžou lišit v závislosti na konkrétních požadavcích vašeho typu projektu. Měli byste zkontrolovat dostupné ukázky, abyste našli ten, který se podobá typu projektu, který vyvíjíte, a pak zkontrolujte skript registru pro tuto ukázku.

Následující příklady pocházejí z HKEY_CLASSES_ROOT.

Příklad 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 Type Data Popis
@ REG_SZ FigPrjFile Název a popis souborů typu projektu, které mají příponu .figp.
Content Type REG_SZ Text/plain Typ obsahu pro soubory projektu
NullFile REG_SZ Null
@ REG_SZ %MODULE%,-206 Výchozí ikona použitá pro projekt tohoto typu. Příkaz %MODULE% je dokončen v registru do výchozího umístění knihovny DLL typu projektu.
@ REG_SZ &Open in Visual Studio Výchozí aplikace, ve které bude tento typ projektu otevřen.
@ REG_SZ devenv.exe "%1" Výchozí příkaz, který se spustí při otevření projektu tohoto typu.

Následující příklady pocházejí z HKEY_LOCAL_MACHINE a nacházejí se v registru pod klíčem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages].

Příklad 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 Type Data Popis
@ (Výchozí) REG_SZ FigPrj Project VSPackage Lokalizovatelný název tohoto registrovaného balíčku VSPackage (typ projektu).
InprocServer32 REG_SZ %MODULE% Cesta knihovny DLL typu projektu. Integrované vývojové prostředí (IDE) načte tuto knihovnu DLL a předá VSPackage CLSID, aby DllGetClassObject se dostal IClassFactory k sestavení objektu IVsPackage .
CompanyName REG_SZ Microsoft Název společnosti, která vyvinula typ projektu.
ProductName REG_SZ Figure Project Sample Název typu projektu.
ProductVersion REG_SZ 9.0 Číslo verze vydaného typu projektu
MinEdition REG_SZ professional Edice sady VSPackage, která je zaregistrovaná.
ID REG_DWORD %IDS_PACKAGE_LOAD_KEY% Klíč načtení balíčku pro balíček VSPackage projektu. Klíč se ověří při načtení projektu po spuštění prostředí.
DllName REG_SZ %RESOURCE_DLL% Název souboru satelitní knihovny DLL, která obsahuje lokalizované zdroje pro typ projektu.
Path REG_SZ %RESOURCE_PATH% Cesta satelitní knihovny DLL.
FigProjectsEvents REG_SZ Viz příkaz pro hodnotu. Určuje textový řetězec vrácený pro tuto událost automatizace.
FigProjectItemsEvents REG_SZ Viz příkaz pro hodnotu. Určuje textový řetězec vrácený pro tuto událost automatizace.

Všechny následující příklady jsou umístěny v registru pod klíčem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Příklad 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 Type Data Popis
@ REG_SZ FigPrj Project Výchozí název projektů tohoto typu
DisplayName REG_SZ #%IDS_PROJECT_TYPE% ID prostředku názvu, který se má načíst ze satelitní knihovny DLL zaregistrované v části Balíčky.
Package REG_SZ %CLSID_Package% ID třídy balíčku VSPackage zaregistrovaného v balíčcích.
ProjectTemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Výchozí cesta k souborům šablony projektu Jedná se o soubory zobrazené šablonou Nového projektu.
ItemTemplatesDir REG_SZ %TEMPLATE_PATH% \FigPrjProjectItems Výchozí cesta k souborům šablony položky projektu Jedná se o soubory zobrazené šablonou Přidat novou položku.
DisplayProjectFileExtensions REG_SZ #%IDS_DISPLAY_PROJ_FILE_EXT% Umožňuje integrované vývojové prostředí (IDE) implementovat dialogové okno Otevřít .
PossibleProjectExtensions REG_SZ figp Používá se v integrovaném vývojovém prostředí (IDE) k určení, zda je projekt otevřen tímto typem projektu (projektová továrna). Formát více než jedné položky je seznam oddělený středníkem. Například "vdproj; vdp".
DefaultProjectExtension REG_SZ .figp Integrované vývojové prostředí (IDE) používá jako výchozí příponu názvu souboru pro operaci Uložit jako.
Filter Settings REG_DWORD Různé příkazy a komentáře najdete v následující tabulce. Tato nastavení slouží k nastavení různých filtrů pro zobrazení souborů v dialogových oknech uživatelského rozhraní.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% ID prostředku pro šablony přidat položku
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Cesta k položkám projektu zobrazeným v dialogovém okně pro šablonu Přidat novou položku
SortPriority REG_DWORD 100 (vcprx64) Určuje pořadí řazení ve stromovém uzlu souborů zobrazených v dialogovém okně Přidat novou položku .

V následující tabulce jsou uvedeny možnosti filtrů dostupné v předchozím segmentu kódu.

Možnost filtru Popis
CommonFindFilesFilter Označuje, že filtr je jedním z běžných filtrů v dialogovém okně Najít v souborech . Běžné filtry jsou uvedeny v seznamu filtrů před filtry, které nejsou označené jako společné.
CommonOpenFilesFilter Označuje, že filtr je jedním z běžných filtrů v dialogovém okně Otevřít soubor . Běžné filtry jsou uvedeny v seznamu filtrů před filtry, které nejsou označené jako společné.
FindInFilesFilter Označuje, že filtr bude jedním z filtrů v dialogovém okně Najít v souborech a bude uveden za běžnými filtry.
NotOpenFileFilter Označuje, že filtr nebude použit v dialogovém okně Otevřít soubor .
NotAddExistingItemFilter Označuje, že filtr nebude použit v dialogovém okně Přidat existující položku .

Pokud filtr ve výchozím nastavení nemá nastavený jeden nebo více těchto příznaků, použije se filtr v dialogovém okně Přidat existující položku a po zobrazení společných filtrů dialogové okno Otevřít soubor . Filtr se nepoužívá v dialogovém okně Najít v souborech .

Všechny následující příklady jsou umístěny v registru pod klíčem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Příklad 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 Type Data Popis
@ REG_SZ #%IDS_NEWPROJ_ TEMPLATES_ENTRY% ID zdroje pro nové šablony projektu
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Výchozí cesta pro projekty registrovaného typu projektu.
SortPriority REG_DWORD 41 (x29) Nastaví pořadí řazení projektů zobrazených v dialogovém okně Průvodce novými projekty.
NewProjectDialogOnly REG_DWORD 0 0 označuje, že projekty tohoto typu jsou zobrazeny pouze v dialogovém okně Nový projekt.

Všechny následující příklady jsou umístěny v registru pod klíčem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Příklad 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 Type Data Popis
@ REG_SZ Nic Výchozí hodnota, která označuje, že následující položky jsou určené pro položky projektů Různé soubory.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Hodnota ID prostředku pro soubory šablony Přidat nové položky
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Výchozí cesta k položkám, které se zobrazí v dialogovém okně Přidat novou položku
SortPriority REG_DWORD 100 (vcprx64) Vytvoří pořadí řazení pro zobrazení ve stromovém uzlu dialogového okna Přidat novou položku .

Následující příklad se nachází v registru pod klíčem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus].

Příklad 6

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

Položka nabídky odkazuje integrované vývojové prostředí (IDE) na prostředek použitý k načtení informací o nabídce. Po sloučení těchto dat do databáze nabídek se stejný klíč přidá v části MenusMerged registru. Balíček VSPackage by neměl upravovat nic přímo v části MenusMerged. V poli Data v následující tabulce jsou tři pole oddělená čárkami. První pole identifikuje úplnou cestu k souboru prostředku nabídky:

  • Pokud je první pole vynecháno, prostředek nabídky se načte ze satelitní knihovny DLL identifikované identifikátorem GUID balíčku VSPackage.

    Druhé pole identifikuje ID prostředku nabídky typu CTMENU:

  • Pokud je zadané ID prostředku a cesta k souboru je zadána prvním parametrem, prostředek nabídky se načte z celé cesty k souboru.

  • Pokud je zadané ID prostředku, ale cesta k souboru není, prostředek nabídky se načte ze satelitní knihovny DLL.

  • Pokud je zadaná úplná cesta k souboru a id prostředku je vynecháno, očekává se, že soubor, který se má načíst, bude souborem CTO.

    Poslední pole identifikuje číslo verze pro prostředek CTMENU. Nabídku můžete znovu sloučit změnou čísla verze.

Name Type Data Popis
%CLSID_Package% REG_SZ ,1000,1 Prostředek, který načte informace o nabídce.

Všechny následující příklady jsou umístěny v registru pod klíčem [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 Type Data Popis
@ REG_SZ #%IDS_NEWPROJ_TEMPLATES_ENTRY% Hodnota ID zdroje pro nové šablony projektu Obrázky
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Výchozí cesta k adresáři Nové projekty Položky v tomto adresáři se zobrazí v dialogovém okně Průvodce novým projektem.
SortPriority REG_DWORD 41 (x29) Vytvoří pořadí, ve kterém se projekty zobrazí ve stromovém uzlu dialogového okna Nový projekt .
NewProjectDialogOnly REG_DWORD 0 0 označuje, že projekty tohoto typu jsou zobrazeny pouze v dialogovém okně Nový projekt .

Následující příklad se nachází v registru pod klíčem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts].

\FiguresProductSample
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
   "UseInterface"=dword:00000001
Name Type Data Popis
Package REG_SZ %CLSID_Package% ID třídy registrovaného balíčku VSPackage.
UseInterface REG_DWORD 1 1 označuje, že uživatelské rozhraní se použije k interakci s tímto projektem. 0 označuje, že neexistuje žádné rozhraní uživatelského rozhraní.

Soubory.vsz, které řídí nové typy projektů, často obsahují RELATIVE_PATH položku. Tato cesta je relativní vzhledem k cestě zadané v položce \ProductDir typu projektu v následujícím instalačním klíči:

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

Například šablony projektů Enterprise Frameworks přidávají následující položky registru:

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

To znamená, že pokud do souboru .vsz zahrnete položku PROJECT_TYPE=EF, prostředí najde soubory .vsz v adresáři ProductDir, který jste zadali dříve.