使用 .Vsdir 檔案將精靈加入至加入項目和新增專案對話方塊
VSDir 檔案是副檔名為 .vsdir 的文字檔,建立此檔案是為了要提供如何將項目顯示在 [加入項目] 和 [新增專案] 對話方塊中的相關資訊。 這項資訊包括項目的名稱、項目的顯示順序,以及與項目一起顯示的圖示。 您可以變更其中任何一個項目。 VSDir 檔案是用來將新的樣板 (Template) 或精靈加入至 [加入項目] 和 [新增專案] 對話方塊中。
沒有預設的 VSDir 檔案。 如果有,Visual Studio 就會讀取該檔案,並將其內容加入至對話方塊中。 如果沒有,則會顯示預設的樣板和精靈。 一個目錄中可以有多個 VSDir 檔案,而且這些檔案的內容全部都會加入至對話方塊中。 一般而言,一個 VSDir 檔案包含多個精靈、資料夾和樣板的記錄。 檔案中的每一筆記錄都會以新行字元 (Newline Character) 分隔。 直線字元 (|) 則是用來分隔每一筆記錄中的各個欄位。 任何不具有意義資料的選擇性欄位都會包含一個零 (0) 或空格做為預留位置。 在欄位中輸入的字串 (String) 前後不需要加上引號。
VSDir 檔案元件
下列是 VSDir 檔案範例。 第一個範例只會參考一個精靈,也就是在逐步解說:建立精靈主題中建立的精靈:
MyNewWizard.vsz| |A New Wizard|1|My New Wizard|C:\Addins\MyNewWizard\MyNewWizard\bin\Debug| | |MyNewWizard99
下一個 VSDir 檔案範例會參考多個精靈 .vsz 檔案以及其他與各精靈相關的資訊 (如同本主題稍後所列)。 與前一個 VSDir 檔案不同之處在於,這些檔案是以資源 ID 編號的方式參考字串,而不是以常值字串的方式。 此外,也使用 GUID 來參考 DLL。
..\..\Projects\csharp building blocks\BusinessFacade.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5015|10|#5022|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|127|0|Project
..\..\Projects\csharp building blocks\BusinessRules.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5016|20|#5023|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|128|0|Project
..\..\Projects\csharp building blocks\DataAccess.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5017|30|#5024|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|129|0|Project
..\..\Projects\csharp building blocks\SystemFrameworks.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5018|40|#5025|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|130|0|Project
..\..\Projects\csharp building blocks\WebService.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5019|50|#5026|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4547|1|WebService|Web
..\..\Projects\csharp building blocks\WebUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5020|60|#5027|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|131|1|WebUI|web
..\..\Projects\csharp building blocks\WinUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5021|70|#5028|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|132|0|Project
您可以為 VSDir 檔案中的各筆記錄指定下列欄位:
欄位 |
意義 |
---|---|
RelPathName |
必要項。 精靈 .vsz 檔案的名稱,例如 MyWizard.vsz (相對於 Visual Studio 安裝目錄而言)。 |
{clsidPackage} |
選擇項。 GUID,表示含有當地語系化資源之 DLL 的產品 (例如 Visual C++。 對於對應至協力廠商精靈的 VSDir 檔案來說,這個欄位通常是空白的。 |
LocalizedName |
選擇項。 這是可當地語系化的精靈或樣板名稱,也是出現在 [加入項目] 對話方塊中的名稱。 這個名稱可以是表單 #ResID 的字串或資源識別項。 |
SortPriority |
必要項。 表示精靈的排序次序和相對優先順序的整數,1 的優先順序為最高。 例如,如果這個項目是 "1",則這個項目會出現在其他順序為 1 的項目的旁邊,而在所有順序為 2 或者更低的項目的前面。 |
描述 |
必要項。 可當地語系化的樣板或精靈描述,選取項目之後,便會出現在 [加入項目] 對話方塊中。 這個名稱可以是表單 #ResID 的字串或資源識別項。 它只套用至範本檔案,而不是資料夾。 |
DLLPath 或 {clsidPackage} |
必要項。 指定 DLL 或 EXE 檔案的完整路徑,或是有 .dll 檔案包含精靈要載入之圖示的產品 GUID。 圖示是用指定的 IconResourceId,以 DLL/EXE 檔案的資源方式載入。 這個設定會覆寫圖示位置的 {clsidPackage} (如果指定的話)。 它只套用至範本檔案,而不是資料夾。 |
IconResourceId |
選擇項。 DLL 檔案中的資源識別項,決定要顯示的圖示。 如果沒有定義圖示,環境會以相同副檔名的預設圖示代替這個項目。 它只套用至範本檔案,而不是資料夾。 |
旗標 |
選擇項。 請參閱下面的 Flags 描述和表格。 它只套用至範本檔案,而不是資料夾。 |
SuggestedBaseName |
必要項。 精靈的預設名稱,會顯示在對話方塊的 [名稱] 欄位中。 這個名稱可以是表單 #ResID 的字串或資源識別項。 如果名稱不是唯一的,環境會為名稱附加一個整數。 例如,MyFile.aspx 可能會變成 MyFile1.aspx。 如果不提供名稱,則會採用「專案」為其名稱。 它只套用至範本檔案,而不是資料夾。 |
備註
任何不具有意義資料的非必要欄位都應該包含一個零 (0) 做為預留位置。如果沒有提供當地語系化名稱,將會使用相對路徑。
如果沒有定義圖示,IDE 會以該副檔名來代替檔案的預設圖示。
如果不提供主檔名 (Base Name),則會採用「專案」為其名稱。
旗標
一組位元 (Bitwise) 旗標,用來啟用或停用 [加入項目] 對話方塊中的 [名稱] 和 [位置] 欄位, 也就是說,當使用者選取 [加入] 功能表中的 [加入新項目] 時,專案會決定名稱和位置是否要顯示在 [樣板] 窗格中,而旗標則會決定使用者是否可以使用名稱和位置。將 Flags 的值設定為個別值的總和。 也就是說,33 相當於 VSDIRFLAG_NonLocalTemplate | VSDIRITEM_DisableLocationField。
旗標名稱
十進位值
描述
VSDIRFLAG_NonLocalTemplate
1
使用非本機的使用者介面行為和儲存機制。
VSDIRFLAG_BlankSolution
2
建立空白 (空的) 方案。 不要建立專案。
VSDIRFLAG_DisableBrowseButton
4
停用專案或項目的 [瀏覽] 按鈕。
VSDIRFLAG_DontAddDefExtension
8
不要將預設副檔名附加到為項目所提供的名稱 (這個設定對專案無效)。
VSDIRFLAG_DisableLocationField
32
停用專案或項目的位置欄位。
VSDIRFLAG_DontInitNameField
4096
不要使用有效的名稱來初始化專案或項目的名稱欄位。
VSDIRFLAG_DisableNameField
8192
停用專案或項目的名稱欄位。