免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

visual studio插件開發(fā)-Menu

工欲善其事,必先利其器,作為程序員我們很大部分時間在和ide打交道,好的插件可以大大提高我們的編程效率,我開發(fā)過幾個vs插件來解決一鍵生成dbmodels,快速部署到服務(wù)器,總結(jié)下來最關(guān)鍵的還是對于Menu這塊的擴展,因為這是插件功能的最常見的入口之一,下面給大家介紹vs插件各種menu的擴展
環(huán)境準(zhǔn)備【visual studio插件開發(fā)-Menu】這里我使用vs2022版本,要開發(fā)vs插件的話,需要vs安裝插件開發(fā)模塊
打開vs 然后點擊 工具 -> 獲取工具和功能

visual studio插件開發(fā)-Menu

文章插圖
然后勾選Visual Studio擴展開發(fā)
visual studio插件開發(fā)-Menu

文章插圖
小試牛刀安裝好之后,打開vs就可以選擇到 vsix project 模板了

visual studio插件開發(fā)-Menu

文章插圖
image
我們利用vsix project模板創(chuàng)建一個插件工程

visual studio插件開發(fā)-Menu

文章插圖
image

visual studio插件開發(fā)-Menu

文章插圖
image
  • MenuDemoVSIXPackage.cs(是插件的入口類)
  • source.extension.vsixmanifest(插件的描述,比如版本,說明等描述性配置的地方)
空的vsix project就創(chuàng)建成功了,我們添加一個command(菜單操作)

visual studio插件開發(fā)-Menu

文章插圖
image

visual studio插件開發(fā)-Menu

文章插圖
image
創(chuàng)建了一個Command會新增下面3個
  • 一個png (圖標(biāo))
  • 一個vsct (不管幾個Command都只會有一個這個文件,包含所有自定義菜單的配置)
  • TestCommand.cs (自定義菜單的命令,點擊菜單的執(zhí)行操作邏輯在里面)

visual studio插件開發(fā)-Menu

文章插圖
image
點擊啟動這個插件,會打開一個有插件環(huán)境的vs(隔離的)
會看到我們的Command名稱:Invoke TestCommand按鈕在vs的[工具]這個菜單里面,點擊它會出一個彈框,如下
visual studio插件開發(fā)-Menu

文章插圖
好了,以上完成初體驗后,回到本文要重點介紹:vs的Menu擴展
vs的Menu擴展上面我們說到 vsct文件,我們的按鈕是展示在Vs哪種類型的Menu下,就是在這個文件定義的,我們一起看下這個vsct文件,關(guān)鍵部分我都用不同顏色來高亮顯示

visual studio插件開發(fā)-Menu

文章插圖
image
CommandTable 表示與VSPackage關(guān)聯(lián)的所有命令、菜單組和菜單 。Extern 表示引用外部.h文件,最終會與.vsct文件合并的
  • stdidcmd.h
  • vsshlids.h
VSCT 編譯器能使用 C++ 宏和預(yù)處理,通過extern引入頭文件,比如vsshlids.h vsshlids.h 頭文件位于
{VS安裝目錄}\VSSDK\VisualStudioIntegration\Common\Inc,
例如我的目錄是
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VSSDK\VisualStudioIntegration\Common\Inc
vsct 文件中有用到宏 IDM_VS_MENU_TOOLS = 0x0005,
它表示 VS 上的 Tools 菜單的ID,這個宏即位于 vsshlids.h 頭文件中 。
如果不引入這個頭文件,那么就得寫0x0005,導(dǎo)致可讀性很差和難維護!

visual studio插件開發(fā)-Menu

文章插圖
image
Commands 表示可以執(zhí)行命令的集合 。每個命令都有以下四個子元素:

經(jīng)驗總結(jié)擴展閱讀