Udostępnij za pośrednictwem


Rejestrowanie typu projektu

Podczas tworzenia nowego typu projektu należy utworzyć wpisy rejestru, które umożliwiają programowi Visual Studio rozpoznawanie i pracę z typem projektu. Zazwyczaj te wpisy rejestru są tworzone przy użyciu pliku skryptu rejestru (rgs).

W poniższym przykładzie instrukcje z rejestru zawierają domyślne ścieżki i dane, jeśli ma to zastosowanie, a następnie tabelę zawierającą wpisy ze skryptu rejestru dla każdej instrukcji. Tabele zawierają wpisy skryptu i dodatkowe informacje o instrukcjach.

Uwaga

Poniższe informacje rejestru mają być przykładem typu i celów wpisów w skryptach rejestru, które będą zapisywane w celu zarejestrowania typu projektu. Rzeczywiste wpisy i ich zastosowania mogą się różnić w zależności od konkretnych wymagań typu projektu. Przejrzyj dostępne przykłady, aby znaleźć ten, który dokładnie przypomina typ opracowywanego projektu, a następnie przejrzyj skrypt rejestru dla tego przykładu.

Poniższe przykłady pochodzą z HKEY_CLASSES_ROOT.

Przykład 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\""
Nazwisko Typ Dane opis
@ REG_SZ FigPrjFile Nazwa i opis plików typu projektu, które mają rozszerzenie .figp.
Content Type REG_SZ Text/plain Typ zawartości dla plików projektu.
NullFile REG_SZ Null
@ REG_SZ %MODULE%,-206 Domyślna ikona używana dla projektu tego typu. Instrukcja %MODULE% jest zakończona w rejestrze do domyślnej lokalizacji biblioteki DLL typu projektu.
@ REG_SZ &Open in Visual Studio Domyślna aplikacja, w której ten typ projektu zostanie otwarty.
@ REG_SZ devenv.exe "%1" Domyślne polecenie, które będzie uruchamiane po otwarciu projektu tego typu.

Poniższe przykłady pochodzą z HKEY_LOCAL_MACHINE i znajdują się w rejestrze pod kluczem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages].

Przykład 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"
Nazwisko Typ Dane opis
@ (Ustawienie domyślne) REG_SZ FigPrj Project VSPackage Lokalizowalna nazwa tego zarejestrowanego pakietu VSPackage (typ projektu).
InprocServer32 REG_SZ %MODULE% Ścieżka biblioteki DLL typu projektu. Środowisko IDE ładuje tę bibliotekę DLL i przekazuje identyfikator CLSID pakietu VSPackage w celu DllGetClassObject utworzenia IClassFactory IVsPackage obiektu.
CompanyName REG_SZ Microsoft Nazwa firmy, która opracowała typ projektu.
ProductName REG_SZ Figure Project Sample Nazwa typu projektu.
ProductVersion REG_SZ 9.0 Numer wersji typu projektu.
MinEdition REG_SZ professional Edycja zarejestrowanego pakietu VSPackage.
ID REG_DWORD %IDS_PACKAGE_LOAD_KEY% Klucz ładowania pakietu dla pakietu VSPackage projektu. Klucz jest weryfikowany po załadowaniu projektu po uruchomieniu środowiska.
DllName REG_SZ %RESOURCE_DLL% Nazwa pliku satelitarnej biblioteki DLL zawierającej zlokalizowane zasoby dla typu projektu.
Path REG_SZ %RESOURCE_PATH% Ścieżka satelitarnej biblioteki DLL.
FigProjectsEvents REG_SZ Zobacz instrukcję , aby uzyskać wartość. Określa ciąg tekstowy zwracany dla tego zdarzenia automatyzacji.
FigProjectItemsEvents REG_SZ Zobacz instrukcję , aby uzyskać wartość. Określa ciąg tekstowy zwracany dla tego zdarzenia automatyzacji.

Wszystkie poniższe przykłady znajdują się w rejestrze pod kluczem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Przykład 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
Nazwisko Typ Dane opis
@ REG_SZ FigPrj Project Domyślna nazwa projektów tego typu.
DisplayName REG_SZ #%IDS_PROJECT_TYPE% Identyfikator zasobu nazwy do pobrania z satelitarnej biblioteki DLL zarejestrowanej w obszarze Pakiety.
Package REG_SZ %CLSID_Package% Identyfikator klasy pakietu VSPackage zarejestrowanego w obszarze Pakiety.
ProjectTemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Domyślna ścieżka plików szablonu projektu. Są to pliki wyświetlane przez szablon Nowy projekt.
ItemTemplatesDir REG_SZ %TEMPLATE_PATH% \FigPrjProjectItems Domyślna ścieżka plików szablonu elementu projektu. Są to pliki wyświetlane przez szablon Dodaj nowy element.
DisplayProjectFileExtensions REG_SZ #%IDS_DISPLAY_PROJ_FILE_EXT% Umożliwia środowisku IDE zaimplementowanie okna dialogowego Otwieranie .
PossibleProjectExtensions REG_SZ figp Używany przez środowisko IDE do określenia, czy otwarty projekt jest obsługiwany przez ten typ projektu (fabryka projektów). Format dla więcej niż jednego wpisu to rozdzielana średnikami lista. Na przykład "vdproj; vdp".
DefaultProjectExtension REG_SZ .figp Używany przez środowisko IDE jako domyślne rozszerzenie nazwy pliku dla operacji Zapisz jako.
Filter Settings REG_DWORD Różne, zobacz instrukcje i komentarze w poniższej tabeli. Te ustawienia służą do ustawiania różnych filtrów do wyświetlania plików w oknach dialogowych interfejsu użytkownika.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Identyfikator zasobu dla pozycji Dodaj szablony elementów.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Ścieżka elementów projektu wyświetlanych w oknie dialogowym dla szablonu Dodaj nowy element .
SortPriority REG_DWORD 100 (vcprx64) Określa kolejność sortowania w węźle drzewa plików wyświetlanych w oknie dialogowym Dodawanie nowego elementu .

W poniższej tabeli przedstawiono opcje Filtry dostępne w poprzednim segmencie kodu.

Opcja filtru opis
CommonFindFilesFilter Wskazuje, że filtr jest jednym z typowych filtrów w oknie dialogowym Znajdowanie w plikach . Typowe filtry są wyświetlane na liście filtrów, zanim filtry nie są oznaczone jako typowe.
CommonOpenFilesFilter Wskazuje, że filtr jest jednym z typowych filtrów w oknie dialogowym Otwieranie pliku . Typowe filtry są wyświetlane na liście filtrów, zanim filtry nie są oznaczone jako typowe.
FindInFilesFilter Wskazuje, że filtr będzie jednym z filtrów w oknie dialogowym Znajdowanie w plikach i zostanie wyświetlony po typowych filtrach.
NotOpenFileFilter Wskazuje, że filtr nie będzie używany w oknie dialogowym Otwieranie pliku .
NotAddExistingItemFilter Wskazuje, że filtr nie będzie używany w oknie dialogowym Dodawanie istniejącego elementu .

Domyślnie jeśli filtr nie ma co najmniej jednej z tych flag, filtr jest używany w oknie dialogowym Dodawanie istniejącego elementu i oknie dialogowym Otwieranie pliku po wyświetleniu typowych filtrów. Filtr nie jest używany w oknie dialogowym Znajdowanie w plikach .

Wszystkie poniższe przykłady znajdują się w rejestrze pod kluczem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Przykład 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
Nazwisko Typ Dane opis
@ REG_SZ #%IDS_NEWPROJ_ TEMPLATES_ENTRY% Identyfikator zasobu dla nowych szablonów projektów.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Domyślna ścieżka dla projektów zarejestrowanego typu projektu.
SortPriority REG_DWORD 41 (x29) Ustawia kolejność sortowania projektów wyświetlanych w oknie dialogowym Kreator nowych projektów.
NewProjectDialogOnly REG_DWORD 0 0 wskazuje, że projekty tego typu są wyświetlane tylko w oknie dialogowym Nowy projekt.

Wszystkie poniższe przykłady znajdują się w rejestrze pod kluczem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Przykład 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
Nazwisko Typ Dane opis
@ REG_SZ Brak Wartość domyślna wskazująca, że następujące wpisy dotyczą wpisów projektów Różne pliki.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Wartość identyfikatora zasobu dla plików szablonu Dodaj nowe elementy.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Domyślna ścieżka elementów, które będą wyświetlane w oknie dialogowym Dodawanie nowego elementu .
SortPriority REG_DWORD 100 (vcprx64) Ustanawia kolejność sortowania dla wyświetlania w węźle drzewa okna dialogowego Dodawanie nowego elementu .

Poniższy przykład znajduje się w rejestrze pod kluczem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus].

Przykład 6

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

Wpis menu wskazuje środowisko IDE do zasobu używanego do pobierania informacji o menu. Po scaleniu tych danych z bazą danych menu ten sam klucz zostanie dodany w sekcji MenusMerged rejestru. Pakiet VSPackage nie powinien modyfikować żadnych elementów w sekcji MenusMerged bezpośrednio. W polu Dane w poniższej tabeli znajdują się trzy pola rozdzielane przecinkami. Pierwsze pole identyfikuje pełną ścieżkę pliku zasobu menu:

  • Jeśli pierwsze pole zostanie pominięte, zasób menu zostanie załadowany z biblioteki DLL satelitarnej zidentyfikowanej przez identyfikator GUID pakietu VSPackage.

    Drugie pole identyfikuje identyfikator zasobu menu typu CTMENU:

  • Jeśli określono identyfikator zasobu, a ścieżka pliku jest dostarczana przez pierwszy parametr, zasób menu jest ładowany z pełnej ścieżki pliku.

  • Jeśli podano identyfikator zasobu, ale ścieżka pliku nie jest, zasób menu jest ładowany z satelitarnej biblioteki DLL.

  • Jeśli zostanie podana pełna ścieżka pliku i pominięty identyfikator zasobu, oczekuje się, że plik do załadowania będzie plikiem CTO.

    Ostatnie pole identyfikuje numer wersji zasobu CTMENU. Możesz ponownie scalić menu, zmieniając numer wersji.

Nazwisko Typ Dane opis
%CLSID_Package% REG_SZ ,1000,1 Zasób umożliwiający pobranie informacji o menu.

Wszystkie poniższe przykłady znajdują się w rejestrze pod kluczem [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
Nazwisko Typ Dane opis
@ REG_SZ #%IDS_NEWPROJ_TEMPLATES_ENTRY% Wartość identyfikatora zasobu dla szablonów projektu Project New Project.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Domyślna ścieżka katalogu New Projects. Elementy w tym katalogu będą wyświetlane w oknie dialogowym Kreator nowego projektu.
SortPriority REG_DWORD 41 (x29) Określa kolejność wyświetlania projektów w węźle drzewa okna dialogowego Nowy projekt .
NewProjectDialogOnly REG_DWORD 0 0 wskazuje, że projekty tego typu są wyświetlane tylko w oknie dialogowym Nowy projekt .

Poniższy przykład znajduje się w rejestrze pod kluczem [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts].

\FiguresProductSample
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
   "UseInterface"=dword:00000001
Nazwisko Typ Dane opis
Package REG_SZ %CLSID_Package% Identyfikator klasy zarejestrowanego pakietu VSPackage.
UseInterface REG_DWORD 1 1 wskazuje, że interfejs użytkownika będzie używany do interakcji z tym projektem. 0 wskazuje, że nie ma interfejsu użytkownika.

Pliki vsz kontrolujące nowe typy projektów często zawierają wpis RELATIVE_PATH. Ta ścieżka jest względna do ścieżki określonej w pozycji \ProductDir typu projektu w następującym kluczu instalacji:

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

Na przykład szablony projektów Enterprise Frameworks dodają następujące wpisy rejestru:

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

Oznacza to, że jeśli dołączysz wpis PROJECT_TYPE=EF w pliku vsz, środowisko znajdzie pliki vsz w katalogu ProductDir określonym wcześniej.