Visual Studio插件开发基础
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/
Visual Studio插件开发基础的更多相关文章
- Visual Studio 插件开发资源
微软官方MSDN 官方MSDN永远是最大而全的电子字典Visual Studio Software Development Kit ,不过它的资料虽然详细,但没有一定的基础的话直接使用它的话有点无从入 ...
- visual studio插件开发-Menu
工欲善其事,必先利其器,作为程序员我们很大部分时间在和ide打交道,好的插件可以大大提高我们的编程效率,我开发过几个vs插件来解决一键生成dbmodels,快速部署到服务器,总结下来最关键的还是对于M ...
- visual studio 插件开发
插件的定义 所谓插件,就是根据平台接口开发的第三方程序.第一次听到这个名词很是不了解,听了解释也不是很明白,那我们来举个例子,比如说一辆房车,现在里面只有基本的一些设施,但是你现在想在顶部有一个晒太阳 ...
- 《构建之法》——GitHub和Visual Studio的基础使用
git地址 https://github.com/microwangwei git用户名 microwangwei 学号后五位 62214 博客地址 https://www.cnblogs.com/w ...
- visual studio插件开发dll类库免加全局缓存处理办法
1.卸载VSIXProject 2.然后编辑*.csproj 修改如下: 3.重新加载项目 编辑source.extension.vsixmanifest 添加资产: 完事后,直接安装VISX就可以了
- 【小试插件开发】给Visual Studio装上自己定制的功能来提高代码调试效率
背后的故事 随着项目需求的逐步增加,后端开发框架在我手上也慢慢重构为组件开发模式,整体结构类似于NopCommence.在这种结构中,每个组件所在的类库项目其实是生成到网站项目里指定的一个目录的,然后 ...
- Visual Studio 2010 插件之Resharper
这一系列不是对每个功能的中文帮助,而是我对开发中可能涉及的功能需求,利用Resharper来完成.有些是Visual Studio有的,但是做的不好,有些是没有而Resharper发明的.总的目的都只 ...
- 【转】.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 ...
- Visual Studio动态代码生成的实现基础
这篇文章讨论以下3个问题: 1.代码生成器应该做什么 2.大多数代码生成器的缺点 3.动态代码生成实现的基础 代码生成器应该做什么? 我认为,目标是加快项目开发,方式是减少重复代码手工操作,实现是用过 ...
随机推荐
- Git协同工作流介绍
git相关的文章和教程非常多,但是系统介绍和了解工作流的人并不多,在使用过程中用错或用偏的也不少,这里分享的是,假设你已经入门的情况下,我们如何去选择适合团队需要的工作流. git优势 这里先唠叨gi ...
- Docker最全教程之使用Docker搭建Java开发环境(十七)
前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. 本篇仅作探索,希望 ...
- Windows Server 2016 安装虚拟机版黑群晖
硬件配置 Dell R730 CPU: Intel(R) Xeon(R) CPU E5-2603 v4 @1.70GHz(6 cores) Ram: 16Gb HDD: 系统-600GB SAS X2 ...
- ERP小金刚Pro专业大比拼: Dynamics,NetSuite和Odoo
前言 在过去的15年中,新技术推动了大大小企业的重新思考他们的流程管理涉及不断变化的业务所创造的新动态景观.实施ERP是许多企业为帮助组织而采取的措施并优化他们开展业务的方式.然而,市场上目前有许多商 ...
- 虹软人脸识别ArcFace2.0 Android SDK使用教程
一.获取SDK 1.进入ArcFace2.0的申请地址 https://ai.arcsoft.com.cn/product/arcface.html 2.填写信息申请并提交 申请通过后即可下载SDK, ...
- Mysql使用中文字段排序的实现--order by
在处理排序规则的时候,有时候我们会需要选择用一些中文字段来排序,实现我们在工作中的需求,下面是在处理排序的时候,适用的方式展示. SELECT t.lawcheckcolumnid AS id,t.c ...
- bootStrap-table服务器端后台分页的使用,以及自定义搜索框的实现,前端代码到数据查询超详细讲解
关于分页,之前一直纯手写js代码来实现,最近又需要用到分页,找了好多最终确定bootstrap-table,正好前端页面用的是bootstrap. 首先下载BootStrap-table的js和CSS ...
- Java线程监控及中断
我们系统中经常有耗费时间长的任务,但客户端往往需要马上得到回应.这时我们就可以如下步骤实现: 1.客户端发起请求执行任务(选定条件,下载报表): 2.首先将任务ID及开始时间,起始状态记录到数据库表中 ...
- BASE64编码原理分析脚本实现及逆向案例
在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理你又了解多少?今天小编带大家了解一下Base64编码原理分析脚本实现及逆向案例的相关内容. 01编码由来 数 ...
- Linux下Zookeeper安装使用
1. 下载 下载地址,选择稳定的版本,比如3.4.13,beta为在测版本 2. 复制到任意的目录,解压 3. 修改配置文件 配置文件位于conf目录下,原配置文件为zoo_sample.cfg,更改 ...