VS Shell 总结

推荐:

https://www.cnblogs.com/TianFang/p/3201469.html
https://www.cnblogs.com/TianFang/p/3206721.html

一,Shell的两种模式:

  • 集成模式(Integrated Mode):开发的插件包融合到标准的Visual Studio环境,成为Visual Studio的一部分。
  • 独立模式(Isolated Mode):开发的插件包融合进一个独立的Visual Studio框架,可以部署到没有安装Visual Studio的机器中。

以前写的VS插件就是集成式,CCW就是独立式。

二, 可以创建一个Visual Studio Shell Isolated的project作为Shell的宿主,或直接用Visual Studio做宿主。

宿主确定后,其余的都可以创建Visual Studio Packege方式,将功能集成进去。Package提供的是服务(Service)。服务是一些对象,它们提供功能供开发者或者其他package调用。

三,提供能服务种类:

  • 界面元素。例如菜单、工具栏、窗口等,开发者可以用它们在用户界面上执行一些动作,显示消息、信息和图片等等。
  • 编辑器。在开发过程中,我们通过编写程序去创建应用程序。编写程序这项任务是由编辑器负责的。Visual Studio 2008有它自己的核心编辑器,但是我们也可以在VSPackage中创建我们自己的编辑器。
  • 设计器。应用程序的创建不只是简单的敲入文本这么简单。我们拥有很多被称为设计器的可视化工具,我们可以利用他们来设计模块、组件、零部件、甚至整个应用系统。著名的例子是WinForm设计器,我们可以用它来创建WinForm的用户界面。
  • 项目。当开发应用程序的时候,我们一般会面向一大堆的文件。项目用来组织这些源文件和资源,并且不是简单的存储这些文件这么简单,它还可以用来编译、调试和发布由源文件创建的产品。

CCW就是项目,CCW里面很多菜单,窗口用的就是界面元素。

四,配置的修改

程序基本信息的修改:
通过修改后缀为Application.pkgdef的文件可以修改一些程序的基本信息,主要包括标题,图标,启动画面等。


ApplicationCommands.vsct文件:
这个文件则用于屏蔽系统附送的视图、工具栏、命令等,属于进一步微调性质。

五,加载一个Package步骤

  • 创建一个Package project,选toolwindow
  • 把Package加载到Isolated Mode Shell的IDE中,首先需要双击XXXVSIX project里的source.extension.vsixmanifest文件。
  • 在Assert标签页中加入刚才创建的package工程。
  • 在View菜单Other Windows里可以看见它!

上面步骤可以忽略?只需将Package生成的dll和pkgdef文件放到同一目录里?(待尝试)

六,如何在IDE中添加一个菜单

  • 为命令创建一个ID、名字和显示的文本,该命令用于显示tool window
  • 创建.vsct文件来设置所谓的command table configuration
  • 为package类添加ProvideMenuAttribute
  • 设置.vsct文件的Build Action
  • 创建菜单项的事件处理函数
  • 建立命令和该事件处理函数的关联
  •  

七,关于GetService的说明:
例:IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));
IVsUIShell是定义服务的接口;SVsUIShell是所谓的标记类型(markup type)
一个接口也可以被一个或多个服务对象实现

猜你喜欢

转载自blog.csdn.net/jfyy/article/details/84055953
今日推荐