Freigeben über


Dateien zur Beschreibung des Vorlagenverzeichnisses (VSDIR)

Eine Vorlagenverzeichnisbeschreibungsdatei (VSDIR) ist eine Textdatei, mit der die integrierte Entwicklungsumgebung (IDE) Ordner, Vsz-Dateien des Assistenten und Vorlagendateien anzeigen kann, die Ihrem Projekt in Dialogfeldern zugeordnet sind. Der Inhalt enthält einen Datensatz pro Datei oder Ordner. Alle VSDIR-Dateien an einem referenzierten Speicherort werden zusammengeführt, obwohl in der Regel nur eine VSDIR-Datei bereitgestellt wird, um mehrere Ordner, Assistenten oder Vorlagendateien zu beschreiben.

Ordner (Unterverzeichnisse), Dateien, auf die in der VSDIR-Datei verwiesen wird, und die VSDIR-Datei selbst befinden sich alle im selben Verzeichnis. Wenn die IDE einen Assistenten ausführt oder einen Ordner oder eine Datei in den Dialogfeldern "Neues Projekt hinzufügen" oder "Neues Element hinzufügen" anzeigt, überprüft die IDE das Verzeichnis, das die ausgeführten Dateien enthält, um zu bestimmen, ob eine VSDIR-Datei vorhanden ist. Wenn eine VSDIR-Datei gefunden wird, liest die IDE sie vor, um zu bestimmen, ob sie einen Eintrag für den ausgeführten oder angezeigten Ordner oder die angezeigte Datei enthält. Wenn ein Eintrag gefunden wird, verwendet die IDE die Informationen in der Ausführung des Assistenten oder der Anzeige des Inhalts.

Das folgende Codebeispiel stammt aus der Datei "SourceFiles.vsdir" im <Registrierungsschlüssel "EnvSDK>\BscPrj\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 diesem Fall befinden sich zwei Datensätze in einer Datei. Ein neues Zeilenzeichen (Wagenrücklaufzeichen) trennt jeden Datensatz. Jede Zeile stellt einen anderen Dateityp dar. Ein Pipezeichen (|) trennt Felder in jedem Datensatz. Ein einzelnes Verzeichnis kann mehrere VSDIR-Dateien mit unterschiedlichen Dateinamen enthalten, oder Sie können eine VSDIR-Datei für jeden Dateityp haben.

Felder

In der folgenden Tabelle sind die für jeden Datensatz angegebenen Felder aufgeführt.

Feld Beschreibung
Relativer Pfadname (RelPathName) Der Name des Ordners, der Vorlage oder der VSZ-Datei, z. B. HeaderFile.h oder MyWizard.vsz. Dieses Feld kann auch ein Name sein, der zum Darstellen eines Ordners verwendet wird.
{clsidPackage} Die GUID der VSPackage, die den Zugriff auf lokalisierte Zeichenfolgen ermöglicht, z. B. "LocalizedName", "Description", "IconResourceId" und "SuggestedBaseName", in den DLL-Ressourcen (Dynamic Link Library) der VSPackage. IconResourceId gilt, wenn DLLPath nicht angegeben wird. Hinweis: Dieses Feld ist optional, es sei denn, eines oder mehrere der vorherigen Felder ist ein Ressourcenbezeichner. Dieses Feld ist in der Regel für VSDIR-Dateien leer, die mit Assistenten von Drittanbietern übereinstimmen, die ihren Text nicht lokalisieren.
LocalizedName Der lokalisierte Name der Vorlagendatei oder des Assistenten. Dieses Feld kann eine Zeichenfolge oder ein Ressourcenbezeichner des Formulars "#ResID" sein. Dieser Name wird im Dialogfeld "Neues Element hinzufügen" angezeigt. Hinweis: Wenn LocalizedName ein Ressourcenbezeichner ist, ist {clsidPackage} erforderlich.
SortPriority Eine ganze Zahl, die die relative Priorität dieser Vorlagendatei oder des Assistenten darstellt. Wenn dieses Element beispielsweise den Wert 1 aufweist, wird dieses Element neben anderen Elementen mit dem Wert 1 und vor allen Elementen mit einem Sortierwert von 2 oder höher angezeigt.

Die Sortierpriorität ist relativ zu den Elementen im selben Verzeichnis. Es kann mehrere VSDIR-Dateien im selben Verzeichnis geben. In diesem Fall werden die Elemente aus allen .Vsdir-Dateien in diesem Verzeichnis werden zusammengeführt. Elemente mit der gleichen Priorität werden in lexikografischer Reihenfolge des angezeigten Namens unter Berücksichtigung der Groß-/Kleinschreibung aufgeführt. Die _wcsicmp Funktion wird verwendet, um die Elemente zu sortieren.

Elemente, die in VSDIR-Dateien nicht beschrieben werden, enthalten eine Prioritätsnummer, die größer als die in den VSDIR-Dateien aufgeführte Höchste Prioritätsnummer ist. Das Ergebnis ist, dass sich diese Elemente unabhängig von ihrem Namen am Ende der angezeigten Liste befinden.
Beschreibung Die lokalisierte Beschreibung der Vorlagendatei oder des Assistenten. Dieses Feld kann eine Zeichenfolge oder ein Ressourcenbezeichner des Formulars "#ResID" sein. Diese Zeichenfolge wird im Dialogfeld "Neues Projekt " oder "Neues Element hinzufügen" angezeigt, wenn das Element ausgewählt ist.
DLL-Pfad oder {CLSID-Paket} Wird verwendet, um ein Symbol für die Vorlagendatei oder den Assistenten zu laden. Das Symbol wird mithilfe der IconResourceId als Ressource aus einer DLL- oder EXE-Datei geladen. Diese DLL- oder EXE-Datei kann entweder mithilfe eines vollständigen Pfads oder mithilfe einer GUID eines VSPackage identifiziert werden. Die Implementierungs-DLL des VSPackage wird verwendet, um das Symbol (nicht die Satelliten-DLL) zu laden.
Symbolressourcenkennung Der Ressourcenbezeichner in der DLL- oder VSPackage-Implementierungs-DLL, die das anzuzeigende Symbol bestimmt.
Flags (__VSDIRFLAGS) Wird verwendet, um die Felder "Name " und "Speicherort " im Dialogfeld "Neues Element hinzufügen" zu deaktivieren oder zu aktivieren. Der Wert des Felds "Flags " ist die Dezimalentsprechung der Kombination der erforderlichen Bitkennzeichnungen.

Wenn ein Benutzer ein Element auf der Registerkarte "Neu " auswählt, bestimmt das Projekt, ob das Feld "Name" und das Feld "Ort" angezeigt werden, wenn das Dialogfeld "Neues Element hinzufügen" zum ersten Mal angezeigt wird. Ein Element kann über eine VSDIR-Datei nur steuern, ob die Felder aktiviert oder deaktiviert sind, wenn das Element ausgewählt wird.
SuggestedBaseName Stellt den Standardnamen für die Datei, den Assistenten oder die Vorlage dar. Dieses Feld ist entweder eine Zeichenfolge oder ein Ressourcenbezeichner des Formulars "#ResID". Die IDE verwendet diesen Wert, um einen Standardnamen für das Element bereitzustellen. Dieser Basiswert wird mit einem ganzzahligen Wert angefügt, um den Namen eindeutig zu machen, z. B. MyFile21.asp.

In der vorherigen Liste gelten Beschreibung, DLLPath, IconResourceId, Flags und SuggestedBaseNumber nur für Vorlagen- und Assistentendateien. Diese Felder gelten nicht für Ordner. Diese Tatsache wird im Code in der Datei "BscPrjProjectItems" im <Registrierungsschlüssel "EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems" veranschaulicht. Diese Datei enthält drei Datensätze (eine für jeden Ordner) mit vier Feldern für jeden Datensatz: RelPathName, {clsidPackage}, LocalizedName und 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

Wenn Sie eine Assistentendatei erstellen, sollten Sie auch die folgenden Probleme berücksichtigen.

  • Ein optionales Feld, für das es keine sinnvollen Daten gibt, sollte als Platzhalter 0 (null) enthalten.

  • Wenn kein lokalisierter Name angegeben wird, wird der relative Pfadname in der Assistentendatei verwendet.

  • DLLPath überschreibt clsidPackage für den Symbolspeicherort.

  • Wenn kein Symbol definiert ist, ersetzt die IDE das Standardsymbol für eine Datei mit dieser Erweiterung.

  • Wenn kein vorgeschlagener Basisname angegeben wird, wird "Project" verwendet.

  • Wenn Sie die VSZ-Dateien, Ordner oder Vorlagendateien löschen, müssen Sie auch die zugehörigen Datensätze aus der VSDIR-Datei entfernen.