VSIX項目,添加右鍵菜單(二)

1、新建VSIX項目後,裏邊基本什麼都沒有

項目上右擊,添加新建項

隨便起一個名字,例如我的是  RightCmd

2、裏邊有一個vsct的文件,這個文件相當於MVC裏的html,是用於配置顯示的。

打開它,裏邊前幾行,有一個引入的文件,vsshlids.h,這個文件,你可以去      項目路徑\packages\Microsoft.VSSDK.BuildTools.14.3.25407\tools\vssdk\inc   (注意版本號)下找,裏邊是vs自帶的命令

其中比較關鍵的幾個

guidSHLMainMenu  是vs主窗體用的(不知道對不對,但意思就是說vs的主要窗體)。

IDM_VS_CTXT_SOLNNODE  是指的解決方案資源管理器裏的    解決方案,

IDM_VS_CTXT_SOLNFOLDER    是指的解決方案資源管理器裏的    解決方案裏的文件夾,不是項目裏的哈,這個文件夾是虛擬的,沒有實際的文件夾映射,

IDM_VS_CTXT_PROJNODE  是指的解決方案資源管理器裏的   項目,

IDM_VS_CTXT_FOLDERNODE  是指的解決方案資源管理器裏的   項目裏的文件夾,

IDM_VS_CTXT_ITEMNODE  是指的解決方案資源管理器裏的   項目裏的項,就例如cs、js文件

其他的暫時不是特別清楚

3、這個vsct文件呢,和平常的定義界面的邏輯一樣,你得先定義

   <Symbols>  裏邊定義一個   GuidSymbol,name隨便起一個(guidItemNodeCmdSet),value 是一個guid,你可以使用vs自帶的guid生成工具

 

 

選擇註冊表格式,點“複製”,把他放到你的GuidSymbol 的  value 裏

這就相當於  定義了一個變量容器,變量容器名 叫  guidItemNodeCmdSet,對映的一個絕對名字  ,就是那串GUID

裏邊定義了一個變量,名 叫 ItemNode, 相對名字是  0x1004(這個隨便,但是在同一個變量容器裏,這個值不能一樣)

 4、下邊,定義一個Group,相當於一個容器

在Groups 裏邊加上這個

 

<!---->
<Group guid="guidItemNodeCmdSet" id="ItemNode" priority="0x0100">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
</Group>

 

 其中,Group的name  就是上邊的那個變量容器,ID 就是上邊的變量

注意的是  Parent,guid寫的是guidSHLMainMenu  ,id 是  IDM_VS_CTXT_ITEMNODE(是指的解決方案資源管理器裏的   項目裏的項,就例如cs、js文件),這表示,如果產生效果,那就是在解決方案裏的項上產生

此示例,就是指的在  項上右擊,在右擊菜單裏新增一個按鈕

如果你想把按鈕放到項目上、文件夾上等等,那就改變這個值,取值在本文(2)裏邊。如果想同時在多個上邊都有按鈕,那就重複 步驟3、4,把id改一下

5、按鈕

在 Buttons 節點下,新增一個按鈕(自動生成的那個也行)

注意,Parent裏的guid 和id  改成  group的guid  和id

<Button guid="guidUpdateBtn" id="UpdateClassFromDbCmdId" priority="0x0100" type="Button">
    <Parent guid="guidItemNodeCmdSet" id="ItemNode"/>
    <Icon guid="guidImages" id="bmpPicSearch" />
    <!-- 下邊兩個是用來控制按鈕的是否可用的 -->
    <CommandFlag>DefaultDisabled</CommandFlag>
    <CommandFlag>DynamicVisibility</CommandFlag>
    <Strings>
        <ButtonText>右鍵菜單</ButtonText>
    </Strings>
</Button>

 

6、運行,按一下F5,啓動  vs的運行實例,然後隨便打開一個項目

好了,右鍵菜單出現了

 

微軟的教程,用谷歌瀏覽器,可以翻譯成中文

https://docs.microsoft.com/zh-cn/visualstudio/extensibility/extending-menus-and-commands

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章