共用方式為


建立 .vsct 檔案

有多種方式可以建立以 XML 為基礎的 Visual Studio 命令表組態 (.vsct) 檔案。

  • 可以在 Visual Studio 套件範本中建立新的 VSPackage。

  • 您可以使用以 XML 為基礎的命令表組態編譯器 Vsct.exe,從現有的 .ctc 檔案產生檔案。

  • 您可以使用 Vsct.exe 從現有的 .cto 檔案產生 .vsct 檔案。

  • 您可以手動建立新的 .vsct 檔案。

    本文說明如何手動建立新的 .vsct 檔案。

手動建立新的 .vsct 檔案

  1. 啟動 Visual Studio。

  2. 在 [ 檔案 ] 功能表上,指向 [ 新增],然後按一下 [ 檔案]。

  3. 在 [範本] 窗格中,按一下 [XML 檔案],然後按一下 [開啟]。

  4. 在 [檢視] 功能表上,按一下 [屬性] 以顯示 XML 檔案的屬性。

  5. 在 [屬性] 視窗中,按一下 [結構描述] 屬性中的 [瀏覽] 按鈕。

  6. 在 XSD 結構描述清單中,選取 vsct.xsd 結構描述。 如果不在清單中,請按一下 [[新增],然後在本機磁碟機上尋找檔案。 完成時,請按一下 [確定]。

  7. 在 XML 檔案中,輸入 <CommandTable,然後按下 Tab。輸入 > 以關閉標記。

    此動作建立基本的 .vsct 檔案。

  8. 根據 VSCT XML 結構描述參考,填入您要新增之 XML 檔案的元素。 如需詳細資訊,請參閱編寫 .Vsct 檔案

從現有的 .ctc 檔建立 .vsct 檔

您可以從現有命令資料表 .ctc 原始程式檔建立 XML .vsct 檔。 這樣做,您可以充分利用新的 XML Visual Studio 命令資料表 (VSCT) 編譯器格式。

從 .ctc 檔建立 .vsct 檔

  1. 取得一份 Perl 語言。

  2. 取得 Perl 指令碼 ConvertCTCToVSCT.pl 的複本,通常位於 <Visual Studio SDK 安裝路徑>\VisualStudioIntegration\Tools\bin 資料夾中。

  3. 取得一份您想要轉換的 .ctc 原始程式檔。

  4. 將檔案放置在相同的目錄中。

  5. 在 Visual Studio 命令提示字元視窗中,導覽至該目錄。

  6. 類型

    perl.exe ConvertCTCtoVSCT.pl PkgCmd.ctc PkgCmd.vsct
    

    其中,PkgCmd.ctc.ctc 檔的名稱,而 PkgCmd.vsct 是您要建立之 .vsct 檔的名稱。

    這個動作會建立新的 .vsct XML 命令資料表原始程式檔。 您可以像是處理任何其他 .vsct 檔一樣,使用 Vsct.exe (VSCT 編譯器) 編譯此檔案。

    注意

    您可以重新格式化 XML 註解來改善 .vsct 檔的可讀性。

從現有的 .cto 檔建立 .vsct 檔

您可以從現有的二進位檔 .cto 建立 XML 檔 .vsct。 這樣做可讓您充分利用新的命令資料表編譯器格式。 即使 .cto 檔是從 .ctc 檔所編譯,這個程序也適用。 您可以將 .vsct 檔編輯並編譯成另一個 .cto 檔。

從 .cto 檔建立 .vsct 檔

  1. 取得 .cto 檔案和其對應 .ctsym 檔的複本。

  2. 將檔案放入與 vsct.exe 編譯器所在相同的目錄。

  3. 在 Visual Studio 命令提示字元中,移至包含 .cto.ctsym 檔的目錄。

  4. 類型

    vsct.exe <ctofilename>.cto <vsctfilename>.vsct -S<symfilename>.ctsym
    

    其中 <ctofilename> 是 .cto 檔案的名稱,<vsctfilename> 是要建立的 .vsct 檔案的名稱,且 <symfilename> 是 .ctsym 檔案的名稱。

    這個程序會建立新的 .vsct XML 命令資料表編譯器檔案。 您可以像是處理任何其他 .vsct 檔一樣,使用 vsct 編譯器 vsct.exe 編輯及編譯此檔案。

編譯程式碼

只將 .vsct 檔案新增至專案不會導致它被編譯。 您必須將其併入建置程序中。

將 .vsct 檔案新增至專案編譯

  1. 在編輯器中開啟您的專案檔案。 如果已載入專案,您必須先卸載它。

  2. 新增包含 VSCTCompile 元素的 ItemGroup 元素,如以下範例所示。

    <ItemGroup>
      <VSCTCompile Include="TopLevelMenu.vsct">
        <ResourceName>Menus.ctmenu</ResourceName>
      </VSCTCompile>
    </ItemGroup>
    
    

    ResourceName 元素應一律設為 Menus.ctmenu

  3. 如果您的專案包含 .resx 檔案,請新增包含 MergeWithCTO 元素的 EmbeddedResource 元素,如以下範例所示:

    <EmbeddedResource Include="VSPackage.resx">
      <MergeWithCTO>true</MergeWithCTO>
      <ManifestResourceName>VSPackage</ManifestResourceName>
    </EmbeddedResource>
    
    

    這個標記應該位於包含內嵌資源的 ItemGroup 元素內。

  4. 在編輯器中開啟套件檔案,通常名稱為 <ProjectName>Package.cs<ProjectName>Package.vb

  5. ProvideMenuResource 屬性新增至套件類別,如以下範例所示。

    [ProvideMenuResource("Menus.ctmenu", 1)]
    

    第一個參數值必須符合您在專案檔案中定義的 ResourceName 屬性值。