共用方式為


設計 XML 命令表裡 (。Vsct) 檔案

XML 指令資料表 (.vsct) 檔案會描述配置和外觀的命令的項目為 VSPackage。 命令的項目包括按鈕、 下拉式方塊、 功能表、 工具列及指令項目群組。 本主題說明 XML 資料表的指令檔、 它們如何影響命令的項目和功能表,以及如何建立它們。

命令、 功能表、 群組和.vsct 檔案

.vsct 檔會組織周圍的命令、 功能表和命令群組。 .Vsct 檔案中的 XML 標記,表示這些項目,以及與其他相關聯的項目,例如指令按鈕、 命令的位置和點陣圖。

當您執行建立新的 VSPackage Visual Studio封裝範本,範本會產生.vsct 檔案必要的項目與功能表指令、 工具視窗,或自訂的編輯器] 中,所做的選擇而定。 根據特定的 VSPackage 需求時,可以再修改這個.vsct 檔案。 如如何修改.vsct 檔案的範例中的範例,請參閱命令、 功能表和工具列的逐步解說

若要建立新且空白的.vsct 檔案,請參閱How to: 建立。Vsct 檔案。 一旦建立之後,您加入 XML 項目、 屬性和值來描述命令的項目配置的檔案。 詳細的 XML 結構描述中,請參閱VSCT XML 結構描述參考

.Ctc 和.vsct 檔案之間的差異

而為那些在現在已被取代的.ctc 檔案格式的意義比表面.vsct 檔案中的 XML 標籤都是相同的其實是有點不同。

  • <extern> 標籤是您用來參考其他的.h 檔案,重新編譯,如: Visual Studio工具列。

  • 雖然.vsct 檔案支援**/include**陳述式中,.ctc 檔案一樣,它也提供新的 <**import>**項目。 不同之處在於, /include會顯示所有的資訊,但 <**import>**在名稱] 只會顯示。

  • 而.ctc 的檔案要求標頭檔,您可以在其中定義您的前置處理器指示詞,一個則不需要的.vsct 檔案。 相反地,將您的指示詞放在符號表中,位於 <Symbol> 項目,位置在.vsct 檔案的底部。

  • .vsct 檔案 」 功能**<Annotation>**標籤,可讓您能嵌入您喜歡,例如註解或甚至是圖形的任何資訊。

  • 值會儲存為項目上的屬性。

  • 命令旗標可以個別地儲存資料庫或堆疊。 Intellisense,不過,並不適用於堆疊的命令旗標。 如需有關命令旗標的詳細資訊,請參閱CommandFlag 項目

  • 您可以指定多個型別,例如分割下拉式清單或組合等。

  • 未驗證的 Guid。

  • 每個 UI 項目具有與它所顯示的文字表示的字串。

  • 父代是選擇性的。 如果省略,則會使用"群組不明"的值。

  • [圖示] 引數是選擇性的。

  • 不同之處在於您現在可以指定檔案名稱將會提取 vsct.exe 編譯器在編譯時期的 href 經由檔案的 [點陣圖] 區段-與.ctc 相同。

  • ResID-舊的點陣圖資源 ID 可用,並且仍為.ctc 檔案中的作用相同。

  • HRef-新方法,可讓您指定點陣圖資源的檔名。 它會假設所有正在使用,因此您可以略過使用過的區段。 編譯器會先搜尋本機資源檔,然後在任何網路的共用資料夾] 及 [/I 參數所定義的任何資源。

  • 您不再需要鍵組-指定模擬器。 如果沒有指定的話,編譯器會假設編輯器] 和 [模擬器都相同。

  • Keychord-已中斷。 新的格式是 Key1、 Mod1、 Key2、 Mod2。 您可以指定字元、 十六進位或 VK 的常數。

新的編譯器、 vsct.exe,編譯.ctc 和.vsct 的檔案。 舊的 ctc.exe--這個編譯器,不過,將會辨識都編譯.vsct 檔。

您可以使用 vsct.exe 編譯器,將現有的.cto 檔案轉換成.vsct 檔案。 如需詳細資訊,請參閱 How to: 建立。從現有的 Vsct 檔案。Cto 能夠檔案

.Vstc 檔案項目

「 命令 」 資料表包含以下的階層和項目:

CommandTable 項目表示所有的命令、 功能表群組和 VSPackage 相關聯的功能表。

Extern 項目— 會參考任何您想要合併的.vstc 檔案的外部的.h 檔案。

Include 項目— 會參考您想要沿著 your.vstc 檔案,以編譯任何其他標頭 (.h) 檔。 .vstc 檔可以包含.h 檔含有定義命令、 功能表組與功能表 IDE 或另一個 VSPackage 所提供的常數。

Commands 項目-請表示所有的可執行個別命令的項目。 每個命令具有下列的四個的子項目:

Menus 項目--請表示所有的功能表及工具列,在 VSPackage 中的項目。 功能表是群組的命令的容器。

Groups 項目表示所有的 VSPackage 中的群組。 群組是個別命令的集合。

Buttons 項目--請表示所有的指令按鈕和功能表項目,在 VSPackage 中的項目。 按鈕是可以與指令相關聯的虛擬控制項。

Bitmaps 項目— 請代表所有的按鈕,在 VSPackage 中的點陣圖的所有的項目。 點陣圖會顯示旁邊或上面內容而定的指令按鈕的圖片。

CommandPlacements 項目— 會顯示在個別的命令應該要位於您 VSPackage 的功能表的其他位置。

VisibilityConstraints 項目--指定命令會顯示根本多次,或只在特定內容,例如出現特定對話方塊或視窗時。 只有在使用中指定的內容時,會顯示功能表和命令,這個項目的值。 預設行為是一直顯示] 指令。

KeyBindings 項目--指定任何命令的按鍵繫結。 也就是一或多個按鍵組合所必須執行的命令,例如按 CTRL + S

UsedCommands 項目--通知Visual Studio雖然被其他程式碼,實作指定的命令,使用目前的 VSPackage 時,它提供命令的實作的環境。

Symbols Element--包含的符號名稱和 GUID Id,為所有您在封裝中的命令。

.Vsct 檔案的設計指導方針

若要成功地設計的.vsct 檔案,請遵循下列指導方針。

  • 命令只置於群組,可以將群組放在功能表上, 僅,功能表可以只能放置在群組。 只有功能表實際上會顯示在 IDE 中,群組而且無法指令。

  • 不能直接指派給功能表上,子功能表,但必須被指派到一個群組,依序係授與功能表。

  • 命令、 子功能表和群組,都可以指派給一個父群組或使用父欄位,其定義的指示詞的功能表。

  • 組織只透過父代中的欄位,指示詞的指令資料表都有相當大的限制。 定義物件的指示詞可以取用只能有一個父代引數。

  • 重複使用的命令、 群組或子功能表必須使用新的指引來建立新的執行個體,物件的使用它自己的GUID:ID配對。

  • 每個GUID:ID配對必須是唯一的。 重複使用,例如,被放在 [功能表] 工具列上,或在快顯功能表上的命令由IOleCommandTarget介面。

  • 指令和子功能表也可以指派給多個群組,和群組可以指派給多個使用的功能表Commands 項目

.Vsct 檔案備忘稿

如果.vsct 檔案之後,您同時進行編譯,並且將它放在原生的附屬 DLL 進行任何變更,您應該執行devenv.exe /setup /nosetupvstemplates。 執行此動作會強制實驗性質的登錄,以進行重新讀取,並將告訴您的內部資料庫中所指定的 VSPackage 資源Visual Studio重新建置。

在開發期間,它可能會建立和登錄可能會導致混淆在 IDE 中的雜亂的實驗性質的登錄 hive 中的多個 VSPackage 專案。 若要修正這個問題,您可以將實驗登錄區重設成預設值,若要移除所有已註冊的 VSPackages,並可能會對 IDE 所做的變更。 若要重設實驗登錄區,請使用 Visual Studio 的 SDK 隨附的 「 vsregex.exe 」 工具。 這個工具位於 tools\bin 或 tools\bin\x86 資料夾中的 [VisualStudioIntegration] 資料夾 (例如,檔 Files\Visual Studio 2010 SDK\VisualStudioIntegration\Tools\Bin\vsregexe.exe)。 使用命令列執行此工具vsregex GetOrig 10.0 Exp10.0版本的Visual Studio所使用和Exp是附加到下的實驗性質的登錄 hive 控制檔取得版本尾碼HKEY_CURRENT_USER

請記住 「 vsregex.exe 」 工具移除實驗登錄區通常不會安裝所有已註冊的 VSPackages Visual Studio。

請參閱

概念

Making Commands Available

其他資源

Command Table Configuration (.ctc) Files

Command Table Format Reference

一般工作的命令、 功能表和工具列