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.