VSX-2 搭建项目
由于是公司的项目,也不可能直接拿过来写博客,所以准备搭建一个自己的VSX项目。 项目需求这里就不写了,大体可参考曾经的一篇文章,这个VSX项目就是用来简化插件式开发。 本文开始正式记录做这个VSX项目的关键点,如果读者没有接触过VSX开发,请参考LearnVSXNow!,这里有译文
项目结构
项目使用模块化开发,将多个VSPackage打包成VSIX项目,可随意删减增加模块。提出一个公共的项目,用来简化VSX开发,分离SDK相关对象。 项目结构大概如下:
每个模块都是相对独立的功能,公共部分在Frramework工程中,以简化VSX开发,最后使用VSIX项目进行组装。大体结构就是这样。
VSIX
安装VS2010SDK后,在新建项目中就能看到Extensibility类别,其中包括如下几个项目模板:
首先创建一个VSIX项目。VSIX相当于Java中的Jar包,实际上VSIX也可以和Jar包一样,使用各类压缩解压缩软件打开。 新建的VSIX项目中,只有一个source.extension.vsixmanifest文件,在VS2010中直接双击该文件,会使用设计器打开(我们自己也能做这种设计器,后面可能会介绍)。
这里第一感觉就是安装程序的一些信息,一些产品名称,作者,版权之类的东西,比较重要的是下面的两个列表框:References和Content。 先不管这两个都有什么用处,直接点F5运行该项目,发现又启动了一个VS,在标题栏中可以看到后面有实验实例
的字样,依次选择:工具-扩展管理器,可以看到咱们新建的VSIX项目,右边可看到一些在vsixmanifest文件中填入的信息。
查看刚刚新建的VSIX项目的属性发现,在调试中,启动操作项选择了启动外部程序,并且里面是当前VS的程序路径,命令行参数中为/rootsuffix Exp
,所以在点击F5调试时会启动一个实验实例。 需要注意的是有时候直接启动可能不会即使更新修改的VSX,暂时还没弄明白是什么原因造成的,有时候调试比较麻烦。
一些问题
上面提到了vsixmanifest中的Content,上图中可以看到我将其他VSPackage、Template或ToolBox加入了Content中,根据不同的项目我们把需要的模块添加到Content中,比如这里我没有添加WPF ToolBox的模块。 在上面实验实例的扩展管理器中,出现了很多个扩展,而这些扩展都是各个模块,不应该出现再扩展管理器中。我们想要的效果是只在扩展管理器中出现一个扩展,就是我们的VSIX项目。 为了解决这个问题,我尝试了每个模块的一些属性,发现在每个模块项目属性中,出现有如下选项:
默认是勾选了前两项的,这里如果不想让其出现在扩展管理器中,只要取消勾选前两项即可。
项目中的Framework项目是用来简化VSX开发的,所以需要引用一些VSX开发使用到的dll,我懒得一个一个去引用,直接新建了一个VSPackage项目,因为只是提供公共方法,并不需要在这里做扩展,所以删除了项目中的所有文件,但是在编译的时候发现总是报错。查了查才知道必须修改一下项目文件才行。 先卸载该项目,然后点击右键,选择编辑项目文件,删除最后一个Import标签,也就是这一行:
<ImportProject="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets"/>
之后重新加载,则没有问题。但是如果需要其他项目引用,还需要给该项目强签名,这个很多人都知道,这里就不多说了。
至此整个项目结构就算基本搭建完成。
VSX-2 搭建项目的更多相关文章
- ASP.NET MVC搭建项目后台UI框架—1、后台主框架
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...
- ASP.NET MVC搭建项目后台UI框架—2、菜单特效
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—7、统计报表
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—9、服务器端排序
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...
随机推荐
- ARM实验3 ——串口实验
uart串口实验 实验内容: 编写UART模块程序,通过串口将信息打印到终端. 实验目的: 熟悉开发环境的使用. 掌握exynos4412处理器的UART功能. 实验平台: FS4412开发板,ecl ...
- 将Apache2.4手动安装成Windows的服务
将Apache2.4手动安装成Windows的服务 可以选择在安装Apache时自动将其安装为一个服务.如果选择"for all users",那么Apache将会被安装为服务. ...
- jade在命令行实时编译
jade文件: doctype html html head title jade study body h1 imoock jade study 在jade文件夹下,终端输入 jade index. ...
- 1.5配置NetBackup数据库备份策略(nbu策略catalog)
1.5配置NetBackup数据库备份策略 建议定期备份NetBackup的索引数据库Catalog,以确保故障时的有效恢复.从Javaconsole可以进入备份NetBackup内部数据库配置窗口, ...
- vue 中$index $key 已经移除了
https://cn.vuejs.org/v2/guide/migration.html#index-and-key-移除 之前可以这样: 1 2 3 4 5 6 <ul id="ex ...
- 11_1_GUI
11_1_GUI 1. AWT AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application的GUI(Graphics User Interface ...
- nvl()函数和nvl2()函数
如果你某个字段为空,但是你想让这个字段显示0,可以使用nvl(字段名,0),当然这个0也可以换成其他东西,如:1,2,3…… 一 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式 ...
- Webpack4 学习笔记五 图片解析、输出的文件划分目录
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack打包图片和划分文件路径 使用图片的方式 通过 new Image() 在 css中设置 background-imag ...
- 【赛时总结】◇赛时·V◇ Codeforces Round #486 Div3
◇赛时·V◇ Codeforces Round #486 Div3 又是一场历史悠久的比赛,老师拉着我回来考古了……为了不抢了后面一些同学的排名,我没有做A题 ◆ 题目&解析 [B题]Subs ...
- spring-mybatis整合异常
Failed to read artifact descriptor for XXXXXX:jar:XXXX.RELEAS 原因是maven的本地仓库没有设置好.在别处拷贝过来的项目会有自己的仓库位置 ...