VSIX项目,添加右键菜单(二)
1、新建VSIX項目后,里邊基本什么都沒有
項目上右擊,添加新建項
隨便起一個名字,例如我的是 RightCmd
2、里邊有一個vsct的文件,這個文件相當于MVC里的html,是用于配置顯示的。
打開它,里邊前幾行,有一個引入的文件,vsshlids.h,這個文件,你可以去 項目路徑packagesMicrosoft.VSSDK.BuildTools.14.3.25407 oolsvssdkinc (注意版本號)下找,里邊是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
總結
以上是生活随笔為你收集整理的VSIX项目,添加右键菜单(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015三星新机GALAXY S6真机外
- 下一篇: 三星galaxy S6配置参数详情介绍