Condividi tramite


Registrazione di un tipo di progetto

Quando si crea un nuovo tipo di progetto, è necessario creare voci del Registro di sistema che consentono a Visual Studio di riconoscere e usare il tipo di progetto. Queste voci del Registro di sistema vengono in genere create usando un file di script del Registro di sistema (con estensione rgs).

Nell'esempio seguente, le istruzioni del Registro di sistema forniscono i percorsi e i dati predefiniti, se applicabile, seguiti da una tabella contenente voci dello script del Registro di sistema per ogni istruzione. Le tabelle forniscono le voci dello script e informazioni aggiuntive sulle istruzioni.

Nota

Le informazioni del Registro di sistema seguenti sono destinate a essere un esempio del tipo e degli scopi delle voci negli script del Registro di sistema che verranno scritti per registrare il tipo di progetto. Le voci effettive e i relativi usi possono variare in base ai requisiti specifici del tipo di progetto. È consigliabile esaminare gli esempi disponibili per trovarne uno simile al tipo di progetto in fase di sviluppo e quindi esaminare lo script del Registro di sistema per tale esempio.

Gli esempi seguenti provengono da HKEY_CLASedizione StandardS_ROOT.

Esempio 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\""
Nome Type Dati Descrizione
@ REG_SZ FigPrjFile Nome e descrizione dei file di tipo di progetto con estensione figp.
Content Type REG_SZ Text/plain Tipo di contenuto per i file di progetto.
NullFile REG_SZ Null
@ REG_SZ %MODULE%,-206 Icona predefinita usata per il progetto di questo tipo. L'istruzione %MODULE% viene completata nel Registro di sistema nel percorso predefinito della DLL del tipo di progetto.
@ REG_SZ &Open in Visual Studio Applicazione predefinita in cui verrà aperto questo tipo di progetto.
@ REG_SZ devenv.exe "%1" Comando predefinito che verrà eseguito quando viene aperto un progetto di questo tipo.

Gli esempi seguenti provengono da HKEY_LOCAL_MACHINE e si trovano nel Registro di sistema nella chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages].

Esempio 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"
Nome Type Dati Descrizione
@ (impostazione predefinita) REG_SZ FigPrj Project VSPackage Nome localizzabile di questo VSPackage registrato (tipo di progetto).
InprocServer32 REG_SZ %MODULE% Percorso della DLL del tipo di progetto. L'IDE carica questa DLL e passa il CLSID VSPackage per DllGetClassObject ottenere IClassFactory per costruire l'oggetto IVsPackage .
CompanyName REG_SZ Microsoft Nome della società che ha sviluppato il tipo di progetto.
ProductName REG_SZ Figure Project Sample Nome del tipo di progetto.
ProductVersion REG_SZ 9.0 Numero di versione della versione del tipo di progetto.
MinEdition REG_SZ professional Edizione del VSPackage registrato.
ID REG_DWORD %IDS_PACKAGE_LOAD_KEY% Chiave di caricamento del pacchetto per il progetto VSPackage. La chiave viene convalidata quando un progetto viene caricato dopo l'avvio dell'ambiente.
DllName REG_SZ %RESOURCE_DLL% Nome file della DLL satellite che contiene risorse localizzate per il tipo di progetto.
Path REG_SZ %RESOURCE_PATH% Percorso della DLL satellite.
FigProjectsEvents REG_SZ Vedere l'istruzione per il valore. Determina la stringa di testo restituita per questo evento di automazione.
FigProjectItemsEvents REG_SZ Vedere l'istruzione per il valore. Determina la stringa di testo restituita per questo evento di automazione.

Tutti gli esempi seguenti si trovano nel Registro di sistema sotto la chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Esempio 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
Nome Type Dati Descrizione
@ REG_SZ FigPrj Project Nome predefinito dei progetti di questo tipo.
DisplayName REG_SZ #%IDS_PROJECT_TYPE% ID risorsa del nome da recuperare dalla DLL satellite registrata in Pacchetti.
Package REG_SZ %CLSID_Package% ID classe del VSPackage registrato in Pacchetti.
ProjectTemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Percorso predefinito dei file modello di progetto. Questi sono i file visualizzati dal modello Nuovo progetto.
ItemTemplatesDir REG_SZ %TEMPLATE_PATH% \FigPrjProjectItems Percorso predefinito dei file modello di elemento di progetto. Questi sono i file visualizzati dal modello Aggiungi nuovo elemento.
DisplayProjectFileExtensions REG_SZ #%IDS_DISPLAY_PROJ_FILE_EXT% Consente all'IDE di implementare la finestra di dialogo Apri .
PossibleProjectExtensions REG_SZ figp Usato dall'IDE per determinare se il progetto aperto viene gestito da questo tipo di progetto (project factory). Il formato per più voci è un elenco delimitato da punto e virgola. Ad esempio "vdproj; vdp".
DefaultProjectExtension REG_SZ .figp Usato dall'IDE come estensione di file predefinita per l'operazione Salva con nome.
Filter Settings REG_DWORD Varie istruzioni e commenti sono disponibili nella tabella seguente. Queste impostazioni vengono usate per impostare i vari filtri per la visualizzazione dei file nelle finestre di dialogo dell'interfaccia utente.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% ID risorsa per Aggiungere modelli di elemento.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Percorso degli elementi del progetto visualizzati nella finestra di dialogo per il modello Aggiungi nuovo elemento .
SortPriority REG_DWORD 100 (vcprx64) Determina l'ordinamento nel nodo albero dei file visualizzati nella finestra di dialogo Aggiungi nuovo elemento .

La tabella seguente mostra le opzioni Filtri disponibili nel segmento di codice precedente.

Opzione filtro Descrizione
CommonFindFilesFilter Indica che il filtro è uno dei filtri comuni nella finestra di dialogo Trova nei file . I filtri comuni sono elencati nell'elenco di filtri prima che i filtri non siano contrassegnati come comuni.
CommonOpenFilesFilter Indica che il filtro è uno dei filtri comuni nella finestra di dialogo Apri file . I filtri comuni sono elencati nell'elenco di filtri prima che i filtri non siano contrassegnati come comuni.
FindInFilesFilter Indica che il filtro sarà uno dei filtri nella finestra di dialogo Trova nei file e verrà elencato dopo i filtri comuni.
NotOpenFileFilter Indica che il filtro non verrà utilizzato nella finestra di dialogo Apri file .
NotAddExistingItemFilter Indica che il filtro non verrà utilizzato nella finestra di dialogo Aggiungi elemento esistente.

Per impostazione predefinita, se un filtro non dispone di uno o più flag impostati, il filtro viene utilizzato nella finestra di dialogo Aggiungi elemento esistente e nella finestra di dialogo Apri file dopo l'elenco dei filtri comuni. Il filtro non viene utilizzato nella finestra di dialogo Trova nei file .

Tutti gli esempi seguenti si trovano nel Registro di sistema sotto la chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Esempio 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
Nome Type Dati Descrizione
@ REG_SZ #%IDS_NEWPROJ_ TEMPLATES_ENTRY% ID risorsa per i nuovi modelli di progetto.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Percorso predefinito per i progetti del tipo di progetto registrato.
SortPriority REG_DWORD 41 (x29) Imposta l'ordinamento dei progetti visualizzati nella finestra di dialogo Creazione guidata nuovi progetti.
NewProjectDialogOnly REG_DWORD 0 0 indica che i progetti di questo tipo vengono visualizzati solo nella finestra di dialogo Nuovo progetto.

Tutti gli esempi seguenti si trovano nel Registro di sistema sotto la chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects].

Esempio 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
Nome Type Dati Descrizione
@ REG_SZ None Valore predefinito che indica che le voci seguenti sono relative alle voci dei progetti File esterni.
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% Valore ID risorsa per i file modello Aggiungi nuovi elementi.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems Percorso predefinito degli elementi che verranno visualizzati nella finestra di dialogo Aggiungi nuovo elemento .
SortPriority REG_DWORD 100 (vcprx64) Stabilisce l'ordinamento per la visualizzazione nel nodo della struttura ad albero della finestra di dialogo Aggiungi nuovo elemento .

L'esempio seguente si trova nel Registro di sistema sotto la chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus].

Esempio 6

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

La voce di menu punta l'IDE alla risorsa usata per recuperare le informazioni sul menu. Quando questi dati sono stati uniti nel database di menu, la stessa chiave verrà aggiunta nella sezione MenusMerged del Registro di sistema. Il VSPackage non deve modificare alcun elemento direttamente nella sezione MenusMerged. Nel campo Dati della tabella seguente sono presenti tre campi delimitati da virgole. Il primo campo identifica un percorso completo di un file di risorse di menu:

  • Se il primo campo viene omesso, la risorsa di menu viene caricata dalla DLL satellite identificata dal GUID VSPackage.

    Il secondo campo identifica un ID risorsa di menu del tipo CTMENU:

  • Se si specifica l'ID risorsa e il percorso del file viene fornito dal primo parametro, viene caricata una risorsa di menu dal percorso completo del file.

  • Se viene specificato l'ID risorsa, ma il percorso del file non è , la risorsa di menu viene caricata dalla DLL satellite.

  • Se viene specificato il percorso completo del file e l'ID risorsa omesso, il file da caricare dovrebbe essere un file CTO.

    L'ultimo campo identifica il numero di versione per la risorsa CTMENU. È possibile unire di nuovo il menu modificando il numero di versione.

Nome Type Dati Descrizione
%CLSID_Package% REG_SZ ,1000,1 Risorsa per recuperare le informazioni sul menu.

Tutti gli esempi seguenti si trovano nel Registro di sistema sotto la chiave [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
Nome Type Dati Descrizione
@ REG_SZ #%IDS_NEWPROJ_TEMPLATES_ENTRY% Valore ID risorsa per i modelli Progetto nuovo progetto.
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects Percorso predefinito della directory New Projects. Gli elementi in questa directory verranno visualizzati nella finestra di dialogo Creazione guidata nuovo progetto.
SortPriority REG_DWORD 41 (x29) Stabilisce l'ordine in cui i progetti verranno visualizzati nel nodo della struttura ad albero della finestra di dialogo Nuovo progetto .
NewProjectDialogOnly REG_DWORD 0 0 indica che i progetti di questo tipo vengono visualizzati solo nella finestra di dialogo Nuovo progetto .

L'esempio seguente si trova nel Registro di sistema nella chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts].

\FiguresProductSample
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"
   "UseInterface"=dword:00000001
Nome Type Dati Descrizione
Package REG_SZ %CLSID_Package% ID classe del VSPackage registrato.
UseInterface REG_DWORD 1 1 indica che l'interfaccia utente verrà usata per interagire con questo progetto. 0 indica che non esiste un'interfaccia utente.

I file con estensione vsz che controllano i nuovi tipi di progetto contengono spesso una voce RELATIVE_PATH. Questo percorso è relativo al percorso specificato nella voce \ProductDir del tipo di progetto nella chiave di installazione seguente:

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

Ad esempio, i modelli di progetto Enterprise Frameworks aggiungono le voci del Registro di sistema seguenti:

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

Ciò significa che se si include una voce PROJECT_TYPE=EF nel file vsz, l'ambiente trova i file con estensione vsz nella directory ProductDir specificata in precedenza.