Visual Studio插件主要有兩種:Add-in 和 VSX(Visual Studio eXtensibility)
兩者區別可參考這篇文章:Visual Studio Extensions - from Add-in to VSPackage
安裝了相應的SDK后,在創建工程時,就能看到插件工程的模板
vs2005、vs2008只支持Add-In插件(下文以vs2008為例)
安裝:將插件dll和AddIn文件拷貝到%USERPROFILE%\Documents\Visual Studio 2008\Addins目錄
卸載:手動刪除插件dll和AddIn文件來卸載Add-in插件,然后啟動一下vs2008來清空殘余的注冊表信息
調試:在插件工程的屬性框中,將插件dll直接輸出到%USERPROFILE%\Documents\Visual Studio 2008\Addins目錄中
選擇“啟動外部程序”,並填寫D:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
命令行參數:/resetaddin XXXXXX.Connect 注:XXXXXX一般為插件工程名 XXXXXX.Connect定義在AddIn文件中
啟用:Tools -- Add-in Manager...
某個vs2008的Addin文件示例:
<?xml version="1.0" encoding="gbk" standalone="no"?> <Extensibility xmlns="http://schemas.microsoft.com/AutomationExtensibility"> <HostApplication> <Name>Microsoft Visual Studio</Name> <Version>9.0</Version> </HostApplication> <HostApplication> <Name>Microsoft Visual Studio Macros</Name> <Version>9.0</Version> </HostApplication> <Addin> <FriendlyName>MyToolsAddIn - No Name provided.</FriendlyName> <Description>MyToolsAddIn - No Description provided.</Description> <Assembly src="file">C:\Users\user\Documents\Visual Studio 2008\Addins\TGameTools.dll</Assembly> <FullClassName>MyToolsAddIn.Connect</FullClassName> <LoadBehavior>0</LoadBehavior> <CommandPreload>1</CommandPreload> <CommandLineSafe>0</CommandLineSafe> </Addin> </Extensibility>
vs2010同時支持Add-in和VSX兩種插件
Add-in:vs2010不再支持手動的安裝和卸載Add-in插件,因此,開發者需要使用一個安裝項目將插件項目的dll輸出和AddIn文件打包到msi文件來安裝插件
與vs2005、vs2008一樣,插件會被安裝到%USERPROFILE%\Documents\Visual Studio 2010\Addins目錄中
如果不再需要插件,可到控制面板中卸載
vs2012及之后的版本只支持VSX插件
VSX(以vs2015為例)
① 安裝:雙擊vsix插件即可安裝 會被安裝到%appdata%\..\Local\Microsoft\VisualStudio\14.0\Extensions\xxxxxxxx.xxx目錄中 注:xxxxxxxx.xxx為隨機生成的字母數字
② 卸載和啟用:在vs的Tools菜單下的Extensions and Updates...彈出的對話框中管理所有VSX
③ 調試:選擇“啟動外部程序”:D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe 命令行參數:/rootsuffix Exp
調試時插件會被輸出到%appdata%\..\Local\Microsoft\VisualStudio\14.0Exp\Extensions中
VSX插件使用vsct文件來編寫插件界面,vsct中xml標簽及相關用法可以參考VSCT XML schema reference
Mads Kristensen開發了Extensibility Tools插件,使得編寫vsct時能Snippets(自動完成)
VSX參考網站
Visual Studio Extensibility (VSX)
Add a most recently used list to a submenu
VSX github代碼
https://github.com/visualstudioextensibility/VSX-Samples
https://github.com/Microsoft/VSSDK-Extensibility-Samples
https://github.com/onlyutkarsh/VisualStudioStatusBarDemo
https://github.com/onlyutkarsh/SolutionEventsMonitor
https://github.com/zeroc-ice/ice-builder-visualstudio
https://github.com/Foliotek/vs2015BuildOnSave
https://github.com/michaelscodingspot/CodyDocs
https://github.com/tafuji/VsExtensibility-ContextMenu
https://github.com/deloitte-solvas/VSX-sample
https://github.com/ryanmolden/AutohideToolbarExample
一些有用的Visual Studio插件
Increase productivity with Visual Studio extensions
Top Ten Free Extensions for Visual Studio 2008
Top Ten Free Extensions for Visual Studio 2010
Top 14 Must Have Free Extensions For Visual Studio 2015
在Visual Studio Market中搜索更多的插件
https://marketplace.visualstudio.com/