Condividi tramite


Descrizione del file di directory modello (.Vsdir)

Un file di descrizione della directory modello (con estensione .vsdir) è un file di testo che consente all'ambiente di sviluppo integrato (IDE) di visualizzare le cartelle, i file wizard .vsz e i file modello associati al progetto nelle finestre di dialogo. Il contenuto include un record per ogni file o cartella. Tutti i file con estensione vsdir in un percorso di riferimento vengono uniti, anche se in genere viene fornito un solo file vsdir per descrivere più cartelle, procedure guidate o file modello.

Cartelle (sottodirectory), i file a cui si fa riferimento nel file .vsdir e il file .vsdir stesso si trovano nella stessa directory. Quando l'IDE esegue una procedura guidata o visualizza una cartella o un file nelle finestre di dialogo Nuovo progetto o Aggiungi nuovo elemento , l'IDE esamina la directory contenente i file eseguiti per determinare se è presente un file con estensione vsdir. Se viene trovato un file con estensione vsdir, l'IDE lo legge per determinare se contiene una voce per la cartella o il file eseguito o visualizzato. Se una voce viene trovata, l'IDE usa le informazioni nell'esecuzione della procedura guidata o nella visualizzazione del contenuto.

L'esempio di codice seguente proviene dal file SourceFiles.vsdir nella chiave del <Registro di sistema EnvSDK>\BscPrj\BscPrjProjectItems\Source_Files:

HeaderFile.h|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#125|130|#126|0|0|0|#127
SourceFile.cpp|{E59935A1-6156-11d1-87A6-00A0C91E2A46}|#122|110|#123|0|0|0|#124

In questo caso, due record si trovano in un unico file. Una nuova riga (carattere di ritorno) separa ogni record. Ogni riga rappresenta un tipo di file diverso. Un carattere pipe (|) separa i campi in ogni record. Una singola directory può contenere più file con estensione vsdir con nomi di file diversi oppure è possibile avere un file con estensione vsdir per ogni tipo di file.

Fields

Nella tabella seguente sono elencati i campi specificati per ogni record.

Campo Description
Nome percorso relativo (RelPathName) Nome della cartella, del modello o del file vsz, ad esempio HeaderFile.h o MyWizard.vsz. Questo campo può anche essere un nome usato per rappresentare una cartella.
{clsidPackage} GUID del VSPackage che consente l'accesso a stringhe localizzate, ad esempio LocalizedName, Description, IconResourceId e SuggestedBaseName, nelle risorse DLL (Satellite Dynamic Link Library) di VSPackage. IconResourceId si applica se DLLPath non è specificato. Nota: Questo campo è facoltativo a meno che uno o più campi precedenti non siano un identificatore di risorsa. Questo campo è in genere vuoto per i file .vsdir che corrispondono ai wizard di terze parti che non localizzano il testo.
LocalizedName Nome localizzato del file modello o della procedura guidata. Questo campo può essere una stringa o un identificatore di risorsa del modulo "#ResID". Questo nome viene visualizzato nella finestra di dialogo Aggiungi nuovo elemento . Nota: Se LocalizedName è un identificatore di risorsa, è necessario {clsidPackage}.
SortPriority Intero che rappresenta la priorità relativa del file modello o della procedura guidata. Ad esempio, se questo elemento ha un valore pari a 1, questo elemento viene visualizzato accanto ad altri elementi con un valore 1 e prima di tutti gli elementi con un valore di ordinamento pari a 2 o superiore.

La priorità di ordinamento è relativa agli elementi nella stessa directory. Nella stessa directory potrebbero essere presenti più file con estensione vsdir. In tal caso, gli elementi di tutti .I file vsdir in tale directory vengono uniti. Gli elementi con la stessa priorità vengono elencati in ordine lessicografico senza distinzione tra maiuscole e minuscole del nome visualizzato. La _wcsicmp funzione viene utilizzata per ordinare gli elementi.

Gli elementi non descritti nei file con estensione vsdir includono un numero di priorità maggiore del numero di priorità più alto elencato nei file con estensione vsdir. Il risultato è che questi elementi si trovano alla fine dell'elenco visualizzato indipendentemente dal nome.
Description Descrizione localizzata del file modello o della procedura guidata. Questo campo può essere una stringa o un identificatore di risorsa del modulo "#ResID". Questa stringa viene visualizzata nella finestra di dialogo Nuovo progetto o Aggiungi nuovo elemento quando l'elemento è selezionato.
DLLPath o {clsidPackage} Consente di caricare un'icona per il file modello o la procedura guidata. L'icona viene caricata come risorsa da un .dll o .exe file usando IconResourceId. Questo .dll o .exe file può essere identificato usando un percorso completo o un GUID di un VSPackage. La DLL di implementazione del VSPackage viene usata per caricare l'icona (non la DLL satellite).
IconResourceId Identificatore della risorsa nella DLL o nella DLL di implementazione vsPackage che determina l'icona da visualizzare.
Bandiere (__VSDIRFLAGS) Consente di disabilitare o abilitare i campi Nome e Posizione nella finestra di dialogo Aggiungi nuovo elemento . Il valore del campo Flags è l'equivalente decimale della combinazione di flag di bit obbligatori.

Quando un utente seleziona un elemento nella scheda Nuovo , il progetto determina se il campo Nome e il campo Posizione vengono visualizzati quando viene visualizzata la finestra di dialogo Aggiungi nuovo elemento . Un elemento, tramite un file con estensione vsdir, può controllare solo se i campi sono abilitati o disabilitati quando l'elemento è selezionato.
NomeBaseSuggerito Rappresenta il nome predefinito per il file, la procedura guidata o il modello. Questo campo è una stringa o un identificatore di risorsa del modulo "#ResID". L'IDE usa questo valore per specificare un nome predefinito per l'elemento. Questo valore di base viene aggiunto con un valore intero per rendere univoco il nome, ad esempio MyFile21.asp.

Nell'elenco precedente, Description, DLLPath, IconResourceId, Flags e SuggestedBaseNumber si applicano solo ai file modello e procedura guidata. Questi campi non si applicano alle cartelle. Questo fatto è illustrato nel codice contenuto nel file BscPrjProjectItems nella chiave del registro di sistema <EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems. Questo file contiene tre record (uno per ogni cartella) con quattro campi per ogni record: RelPathName, {clsidPackage}, LocalizedName e SortPriority.

General&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#110&#124;100

Source_Files&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#111&#124;110

Env&#124;{E59935A1-6156-11d1-87A6-00A0C91E2A46}&#124;#112&#124;120

Quando si crea un file della procedura guidata, è consigliabile considerare anche i problemi seguenti.

  • Qualsiasi campo non obbligatorio per il quale non sono presenti dati significativi deve contenere un valore 0 (zero) come segnaposto.

  • Se non viene specificato alcun nome localizzato, il nome del percorso relativo viene usato nel file della procedura guidata.

  • DLLPath esegue l'override di clsidPackage per la posizione dell'icona.

  • Se non viene definita alcuna icona, l'IDE sostituisce l'icona predefinita per un file con tale estensione.

  • Se non viene specificato alcun nome di base suggerito, viene usato 'Project'.

  • Se si eliminano i file con estensione vsz, le cartelle o i file modello, è necessario rimuovere anche i record associati dal file vsdir.