Visual Studio插件主要有兩種:Add-in 和 VSX(Visual Studio eXtensibility)git
二者區別可參考這篇文章:Visual Studio Extensions - from Add-in to VSPackagegithub
安裝了相應的SDK後,在建立工程時,就能看到插件工程的模板app
vs2005、vs2008只支持Add-In插件(下文以vs2008爲例)ide
安裝:將插件dll和AddIn文件拷貝到%USERPROFILE%\Documents\Visual Studio 2008\Addins目錄網站
卸載:手動刪除插件dll和AddIn文件來卸載Add-in插件,而後啓動一下vs2008來清空殘餘的註冊表信息ui
調試:在插件工程的屬性框中,將插件dll直接輸出到%USERPROFILE%\Documents\Visual Studio 2008\Addins目錄中spa
選擇「啓動外部程序」,並填寫D:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe插件
命令行參數:/resetaddin XXXXXX.Connect 注:XXXXXX通常爲插件工程名 XXXXXX.Connect定義在AddIn文件中命令行
啓用:Tools -- Add-in Manager...3d
某個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文件來安裝插件
與vs200五、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中搜索更多的插件