Opis katalogu szablonu (pliki Vsdir)

Plik opisu katalogu szablonu (vsdir) to plik tekstowy, który umożliwia zintegrowanemu środowisku programistycznemu (IDE) wyświetlanie folderów, plików vsz kreatora i plików szablonów skojarzonych z projektem w oknach dialogowych. Zawartość zawiera jeden rekord na plik lub folder. Wszystkie pliki .vsdir w lokalizacji, do której odwołuje się odwołanie, są scalane, chociaż do opisywania wielu folderów, kreatorów lub plików szablonów jest zwykle udostępniany tylko jeden plik vsdir.

Foldery (podkatalogi), pliki, do których odwołuje się plik vsdir, a sam plik vsdir znajdują się w tym samym katalogu. Gdy środowisko IDE uruchamia kreatora lub wyświetla folder lub plik w oknie dialogowym Nowy projekt lub Dodaj nowy element , środowisko IDE sprawdza katalog zawierający wykonane pliki, aby określić, czy plik vsdir jest obecny. Jeśli zostanie znaleziony plik vsdir, środowisko IDE odczytuje go, aby określić, czy zawiera wpis dla wykonanego, czy wyświetlonego folderu lub pliku. Jeśli wpis zostanie znaleziony, środowisko IDE używa informacji w wykonaniu kreatora lub wyświetlania zawartości.

Poniższy przykład kodu pochodzi z pliku SourceFiles.vsdir w kluczu <rejestru 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

W tym przypadku dwa rekordy znajdują się w jednym pliku. Nowy wiersz (znak powrotu karetki) oddziela każdy rekord. Każdy wiersz reprezentuje inny typ pliku. Znak potoku (|) oddziela pola w każdym rekordzie. Pojedynczy katalog może zawierać wiele plików vsdir o różnych nazwach plików lub jeden plik vsdir dla każdego typu pliku.

Pola

W poniższej tabeli wymieniono pola określone dla każdego rekordu.

Pole opis
Nazwa ścieżki względnej (RelPathName) Nazwa folderu, szablonu lub pliku vsz, na przykład HeaderFile.h lub MyWizard.vsz. To pole może być również nazwą używaną do reprezentowania folderu.
{clsidPackage} Identyfikator GUID pakietu VSPackage, który umożliwia dostęp do zlokalizowanych ciągów, takich jak LocalizedName, Description, IconResourceId i SuggestedBaseName, w zasobach biblioteki linków dynamicznych (DLL) programu VSPackage. Identyfikator IconResourceId ma zastosowanie, jeśli biblioteka DLLPath nie jest podana. Uwaga: to pole jest opcjonalne, chyba że co najmniej jedno z poprzednich pól jest identyfikatorem zasobu. To pole jest zwykle puste dla plików vsdir, które odpowiadają kreatorom innych firm, które nie lokalizować ich tekstu.
Localizedname Zlokalizowana nazwa pliku szablonu lub kreatora. To pole może być ciągiem lub identyfikatorem zasobu formularza "#ResID". Ta nazwa jest wyświetlana w oknie dialogowym Dodawanie nowego elementu . Uwaga: Jeśli LocalizedName jest identyfikatorem zasobu, wymagany jest parametr {clsidPackage}.
SortPriority Liczba całkowita reprezentująca względny priorytet tego pliku szablonu lub kreatora. Jeśli na przykład ten element ma wartość 1, ten element jest wyświetlany obok innych elementów o wartości 1 i przed wszystkimi elementami o wartości sortowania 2 lub większej.

Priorytet sortowania jest względny względem elementów w tym samym katalogu. W tym samym katalogu może znajdować się więcej niż jeden plik vsdir. W takim przypadku elementy ze wszystkich elementów .pliki vsdir w tym katalogu są scalane. Elementy z tym samym priorytetem są wymienione w kolejności leksykograficznej bez uwzględniania wielkości liter wyświetlanej nazwy. Funkcja _wcsicmp służy do zamawiania elementów.

Elementy, które nie zostały opisane w plikach vsdir, obejmują numer priorytetu większy niż najwyższy numer priorytetu wymieniony w plikach vsdir. Wynikiem jest to, że te elementy znajdują się na końcu wyświetlanej listy niezależnie od ich nazwy.
opis Zlokalizowany opis pliku szablonu lub kreatora. To pole może być ciągiem lub identyfikatorem zasobu formularza "#ResID". Ten ciąg pojawia się w oknie dialogowym Nowy projekt lub Dodaj nowy element po wybraniu elementu.
DLLPath lub {clsidPackage} Służy do ładowania ikony pliku szablonu lub kreatora. Ikona jest ładowana jako zasób z pliku dll lub .exe przy użyciu identyfikatora IconResourceId. Ten plik dll lub .exe można zidentyfikować przy użyciu pełnej ścieżki lub identyfikatora GUID pakietu VSPackage. Biblioteka DLL implementacji pakietu VSPackage służy do ładowania ikony (a nie biblioteki DLL satelitarnej).
IconResourceId Identyfikator zasobu w dll lub dll implementacji pakietu VSPackage, który określa ikonę do wyświetlenia.
Flagi (__VSDIRFLAGS) Służy do wyłączania lub włączania pól Nazwa i Lokalizacja w oknie dialogowym Dodawanie nowego elementu . Wartość pola Flags to odpowiednik dziesiętny kombinacji wymaganych flag bitowych.

Gdy użytkownik wybierze element na karcie Nowy, projekt określi, czy pole Nazwa i pole Lokalizacja są wyświetlane, gdy zostanie wyświetlone okno dialogowe Dodawanie nowego elementu. Element za pośrednictwem pliku vsdir może kontrolować tylko, czy pola są włączone, a wyłączone po wybraniu elementu.
Sugerowana nazwa bazy danych Reprezentuje domyślną nazwę pliku, kreatora lub szablonu. To pole jest ciągiem lub identyfikatorem zasobu formularza "#ResID". Środowisko IDE używa tej wartości do podania domyślnej nazwy elementu. Ta wartość podstawowa jest dołączana z wartością całkowitą, aby nazwa została unikatowa, na przykład MyFile21.asp.

Na poprzedniej liście Opis, DLLPath, IconResourceId, Flagi i SuggestedBaseNumber mają zastosowanie tylko do plików szablonu i kreatora. Te pola nie mają zastosowania do folderów. Ten fakt przedstawiono w kodzie w pliku BscPrjProjectItems w kluczu <rejestru EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems. Ten plik zawiera trzy rekordy (po jednym dla każdego folderu) z czterema polami dla każdego rekordu: RelPathName, {clsidPackage}, LocalizedName i 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

Podczas tworzenia pliku kreatora należy również wziąć pod uwagę następujące problemy.

  • Każde pole, dla którego nie ma żadnych znaczących danych, powinno zawierać 0 (zero) jako symbol zastępczy.

  • Jeśli nie podano zlokalizowanej nazwy, w pliku kreatora jest używana nazwa ścieżki względnej.

  • Biblioteka DLLPath zastępuje clsidPackage dla lokalizacji ikony.

  • Jeśli nie zdefiniowano żadnej ikony, środowisko IDE zastępuje domyślną ikonę pliku, który ma to rozszerzenie.

  • Jeśli nie podano sugerowanej nazwy podstawowej, zostanie użyta wartość "Project".

  • Jeśli usuniesz pliki vsz, foldery lub pliki szablonu, musisz również usunąć skojarzone rekordy z pliku vsdir.