Visual Studio插件主要有两种:Add-inVSX(Visual Studio eXtensibility)

两者区别可参考这篇文章:Visual Studio Extensions - from Add-in to VSPackage

安装了相应的SDK后,在创建工程时,就能看到插件工程的模板

vs2005vs2008只支持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)

Dynamically add menu items

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插件

Extensions for 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/

Visual Studio插件开发基础的更多相关文章

  1. Visual Studio 插件开发资源

    微软官方MSDN 官方MSDN永远是最大而全的电子字典Visual Studio Software Development Kit ,不过它的资料虽然详细,但没有一定的基础的话直接使用它的话有点无从入 ...

  2. visual studio插件开发-Menu

    工欲善其事,必先利其器,作为程序员我们很大部分时间在和ide打交道,好的插件可以大大提高我们的编程效率,我开发过几个vs插件来解决一键生成dbmodels,快速部署到服务器,总结下来最关键的还是对于M ...

  3. visual studio 插件开发

    插件的定义 所谓插件,就是根据平台接口开发的第三方程序.第一次听到这个名词很是不了解,听了解释也不是很明白,那我们来举个例子,比如说一辆房车,现在里面只有基本的一些设施,但是你现在想在顶部有一个晒太阳 ...

  4. 《构建之法》——GitHub和Visual Studio的基础使用

    git地址 https://github.com/microwangwei git用户名 microwangwei 学号后五位 62214 博客地址 https://www.cnblogs.com/w ...

  5. visual studio插件开发dll类库免加全局缓存处理办法

    1.卸载VSIXProject 2.然后编辑*.csproj 修改如下: 3.重新加载项目 编辑source.extension.vsixmanifest 添加资产: 完事后,直接安装VISX就可以了

  6. 【小试插件开发】给Visual Studio装上自己定制的功能来提高代码调试效率

    背后的故事 随着项目需求的逐步增加,后端开发框架在我手上也慢慢重构为组件开发模式,整体结构类似于NopCommence.在这种结构中,每个组件所在的类库项目其实是生成到网站项目里指定的一个目录的,然后 ...

  7. Visual Studio 2010 插件之Resharper

    这一系列不是对每个功能的中文帮助,而是我对开发中可能涉及的功能需求,利用Resharper来完成.有些是Visual Studio有的,但是做的不好,有些是没有而Resharper发明的.总的目的都只 ...

  8. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生

    [转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  9. Visual Studio动态代码生成的实现基础

    这篇文章讨论以下3个问题: 1.代码生成器应该做什么 2.大多数代码生成器的缺点 3.动态代码生成实现的基础 代码生成器应该做什么? 我认为,目标是加快项目开发,方式是减少重复代码手工操作,实现是用过 ...

随机推荐

  1. Windows代码,添加一个节,以及RVA跟FOA互相转化,以及内存文件对齐代码.

    / 1.修改文件头节个数 +1 2.修改ImageBase 3.遍历节表,拷贝最后一个节表到下面 4.修改节的虚拟大小(节表.virtualSize) 5.修改节的虚拟地址(RVA 节表.virtua ...

  2. 8天入门docker系列 —— 第一天 docker出现前的困惑和简单介绍

    docker出来也有很多年了,但用到的公司其实并不是很多,docker对传统开发是一个革命性的,几乎颠覆了之前我们传统的开发方法和部署模式,而大多 公司保守起见或不到万不得已基本上不会去变更现有模式. ...

  3. 面向对象之三个基本特征(javaScript)

    1. 前言 2. 封装 3. 继承 4. 多态 5. 总结 1. 前言 了解过面向对象的同学应该都知道,面向对象三个基本特征是:封装.继承.多态,但是对于这三个词具体可能不太了解. 2. 封装 在说封 ...

  4. 了解git的命令行使用

    git现在已经是非常大众的版本管理工具了,如果在windows下用vs这种ide,已经可以很简单的点点鼠标就完成大部分工作了. 但是在某些特殊情况用命令行时,还是需要了解很多命令的. 安装 linux ...

  5. 在keil中添加stc系列单片机型号(模型)方法

    1.下载安装stc-isp烧录软件: 官网:http://www.gxwmcu.com/ 2.打开使用stc-isp软件,并导入stc官方器件库: 注意:一定要找到包含有C51和UV4的文件夹 3.显 ...

  6. 关于wordpress升级遇到的问题

    前几天登录我的博客后台,发现可以升级了,顺手点了一下,但顺接出现了几个报错,然后这里记录一下解决方法: 1.出现“另一更新正在进行”的错误解决: 这是因为可能你上次更新失败了,或者WordPress在 ...

  7. java日志框架log4j详细配置及与slf4j联合使用教程

    最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...

  8. Linux 桌面玩家指南:16. 使用 CUDA 发挥显卡的计算性能

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  9. 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?

    面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原理,比如 kaf ...

  10. 每日分享!~ JavaScript(拖拽事件)

    浏览器的拖拉事件 拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里. 拖拉的对象有好几种,包括元素节点.图片.链接.选中的文字等等.在网页中 ...