다음을 통해 공유


템플릿 디렉터리 설명(.Vsdir) 파일

템플릿 디렉터리 설명 파일(.vsdir)은 IDE(통합 개발 환경)가 대화 상자에서 프로젝트와 연결된 폴더, 마법사 .vsz 파일, 템플릿 파일을 표시할 수 있도록 하는 텍스트 파일입니다. 콘텐츠에는 파일 또는 폴더당 하나의 레코드가 포함됩니다. 참조된 위치의 모든 .vsdir 파일은 병합되지만 일반적으로 여러 폴더, 마법사 또는 템플릿 파일을 설명하기 위해 .vsdir 파일은 하나만 제공됩니다.

폴더(하위 디렉터리), .vsdir 파일에서 참조되는 파일, .vsdir 파일 자체는 모두 동일한 디렉터리에 있습니다. IDE가 마법사를 실행하거나 새 프로젝트 또는 새 항목 추가 대화 상자에 폴더 또는 파일을 표시하면 IDE는 실행된 파일이 포함된 디렉터리를 검사하여 .vsdir 파일이 있는지 확인합니다. .vsdir 파일이 발견되면 IDE는 파일을 읽어 실행된 폴더나 표시된 폴더 또는 파일에 대한 항목이 포함되어 있는지 확인합니다. 항목이 발견되면 IDE는 마법사를 실행하거나 콘텐츠를 표시하는 데 정보를 사용합니다.

다음 코드 예제는 <EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems\Source_Files 레지스트리 키에 있는 SourceFiles.vsdir 파일에서 가져온 것입니다.

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

이 경우 두 개의 레코드가 하나의 파일에 있습니다. 새 줄(캐리지 리턴 문자)은 각 레코드를 구분합니다. 각 줄은 다른 파일 형식을 나타냅니다. 파이프(|) 문자는 각 레코드의 필드를 구분합니다. 단일 디렉터리에는 서로 다른 파일 이름의 여러 .vsdir 파일이 포함되거나 각 파일 형식에 대해 하나의 .vsdir 파일이 있을 수 있습니다.

필드

다음 테이블에는 각 레코드에 대해 지정된 필드가 나열되어 있습니다.

필드 설명
상대 경로 이름(RelPathName) HeaderFile.h 또는 MyWizard.vsz와 같은 폴더, 템플릿 또는 .vsz 파일의 이름입니다. 이 필드는 폴더를 나타내는 데 사용되는 이름일 수도 있습니다.
{clsidPackage} VSPackage의 위성 DLL(동적 연결 라이브러리) 리소스에서 LocalizedName, Description, IconResourceId, SuggestedBaseName과 같은 지역화된 문자열에 액세스할 수 있도록 하는 VSPackage의 GUID입니다. DLLPath를 제공하지 않으면 IconResourceId가 적용됩니다. 참고: 이전 필드 중 하나 이상이 리소스 식별자가 아닌 경우 이 필드는 선택 사항입니다. 이 필드는 일반적으로 텍스트를 지역화하지 않는 타사 마법사에 해당하는 .vsdir 파일의 경우 비어 있습니다.
LocalizedName 템플릿 파일 또는 마법사의 지역화된 이름입니다. 이 필드는 “#ResID” 양식의 문자열 또는 리소스 식별자일 수 있습니다. 이 이름은 새 항목 추가 대화 상자에 표시됩니다. 참고: LocalizedName이 리소스 식별자인 경우 {clsidPackage}가 필요합니다.
SortPriority 이 템플릿 파일 또는 마법사의 상대적 우선 순위를 나타내는 정수입니다. 예를 들어 이 항목의 값이 1이면 이 항목은 값이 1인 다른 항목 옆에 표시되고 정렬 값이 2 이상인 모든 항목보다 앞에 표시됩니다.

정렬 우선 순위는 동일한 디렉터리의 항목을 기준으로 합니다. 동일한 디렉터리에 둘 이상의 .vsdir 파일이 있을 수 있습니다. 이 경우 해당 디렉터리에 있는 모든 .vsdir 파일의 항목이 병합됩니다. 우선 순위가 같은 항목은 표시된 이름의 대/소문자를 구분하지 않는 사전순으로 나열됩니다. _wcsicmp 함수는 항목을 정렬하는 데 사용됩니다.

.vsdir 파일에 설명되지 않은 항목에는 .vsdir 파일에 나열된 가장 높은 우선 순위 수보다 큰 우선 순위 번호가 포함됩니다. 그 결과 이러한 항목은 이름에 관계없이 표시된 목록의 끝에 있습니다.
설명 템플릿 파일 또는 마법사에 대한 지역화된 설명입니다. 이 필드는 “#ResID” 양식의 문자열 또는 리소스 식별자일 수 있습니다. 이 문자열은 항목을 선택할 때 새 프로젝트 또는 새 항목 추가 대화 상자에 나타납니다.
DLLPath 또는 {clsidPackage} 템플릿 파일 또는 마법사의 아이콘을 로드하는 데 사용됩니다. 아이콘은 IconResourceId를 사용하여 .dll 또는 .exe 파일에서 리소스로 로드됩니다. 이 .dll 또는 .exe 파일은 전체 경로를 사용하거나 VSPackage의 GUID를 사용하여 식별할 수 있습니다. VSPackage의 구현 DLL은 아이콘(위성 DLL 아님)을 로드하는 데 사용됩니다.
IconResourceId 표시할 아이콘을 결정하는 DLL 또는 VSPackage 구현 DLL의 리소스 식별자입니다.
플래그(__VSDIRFLAGS) 새 항목 추가 대화 상자에서 이름위치 필드를 사용하거나 사용하지 않도록 설정하는 데 사용됩니다. 플래그 필드의 값은 필수 비트 플래그 조합에 해당하는 10진수입니다.

사용자가 새 항목 탭에서 항목을 선택하면 프로젝트는 새 항목 추가 대화 상자가 처음 표시될 때 이름 필드와 위치 필드를 표시할지 여부를 결정합니다. 항목은 .vsdir 파일을 통해 항목이 선택될 때 필드를 사용하는지 사용하지 않는지 여부를 제어할 수 있습니다.
SuggestedBaseName 파일, 마법사 또는 템플릿의 기본 이름을 나타냅니다. 이 필드는 “#ResID” 양식의 문자열 또는 리소스 식별자입니다. IDE는 이 값을 사용하여 항목의 기본 이름을 제공합니다. 이 기본 값에는 MyFile21.asp와 같이 고유한 이름을 만들기 위해 정수 값이 추가됩니다.

이전 목록에서 Description, DLLPath, IconResourceId, Flags, SuggestedBaseNumber는 템플릿 및 마법사 파일에만 적용됩니다. 이러한 필드는 폴더에 적용되지 않습니다. 이 사실은 <EnvSDK>\BscPrj\BscPrj\BscPrjProjectItems 레지스트리 키에 있는 BscPrjProjectItems 파일의 코드에 설명되어 있습니다. 이 파일에는 각 레코드에 대해 RelPathName, {clsidPackage}, LocalizedName, SortPriority의 4개 필드가 있는 3개의 레코드(각 폴더마다 하나씩)가 포함되어 있습니다.

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

마법사 파일을 만들 때는 다음 문제도 고려해야 합니다.

  • 의미 있는 데이터가 없는 필수가 아닌 필드는 자리 표시자로 0을 포함해야 합니다.

  • 지역화된 이름이 제공되지 않으면 상대 경로 이름이 마법사 파일에 사용됩니다.

  • DLLPath는 아이콘 위치에 대한 clsidPackage를 재정의합니다.

  • 아이콘이 정의되지 않은 경우 IDE는 해당 확장자가 있는 파일의 기본 아이콘으로 대체합니다.

  • 제안된 기본 이름이 제공되지 않으면 ‘Project’가 사용됩니다.

  • .vsz 파일, 폴더 또는 템플릿 파일을 삭제하는 경우 .vsdir 파일에서 연결된 레코드도 제거해야 합니다.