快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰平台游戏a:(翻译)LearnVSXNow6 创建我们第一个工具集-序幕



在前面的文章中,我们在领导的赞助下创建了一些小的VSPackages。在第五讲中我们收拾了VSX的一些思路和观点,深入懂得了packages是若何事情的以及办事的机制。在这篇文章中我们继承提高。

为了创建创建“轻易编写和理解”的代码,从本文开始,我们开初创建一个对象集示例Package。我计划用至少如下三个主题来评论争论:

序幕:创建示例package的第一部分,它是这个对象集的根基。在这篇中我们将手动添加菜单敕令来探究一下command table configuration文件。

完成示例:在这篇文章里,我们创建示例package的第二部分。手动添加一个自定义Tool Window,并且探索一下output window。

重构:我们改动package,提取一些在package开拓中公共的可复用的类型。

在这个系列中,我们会创建一个对象窗,它可以对两个整数进行算术运算。

写这个系列的目的,并不是为了实现这个对象集的功能,而是为了认识创建类似利用的步骤。经由过程创建这个简单的对象集,可以使我们更澳门新葡亰平台游戏a认识package的开拓,这要比直接解说VS SDK中的interop法度榜样集和MPF类更轻易理解。

创建一个空的VSPackage

我们先创建一个空的VSPackage。由于在前面的文章中我阐清楚明了创建空package的步澳门新葡亰平台游戏a骤,以是在这里就省略掉落截图了。选择Visual Studio Integration Package类型的项目,该项目模板会弹出我们的同伙—VSPackage领导。命名工程为StartupToolset。选择C#说话,根据下面的图片填写基础的信息:

鄙人一个领导页面不要勾选Menu command, Tool window 和 Command editor中的任何一个(由于我们要手动添加它们);再下一步也不要勾选任何测试项目,着末点击完成。领导天生了一个空package的项目。运行后反省Help|About对话框,以确认StartupToolset包是否在VS实验室情况下被精确的注册了。(留意:为了削减代码量和前进可读性,这个时刻我删除了领导天生的注释,你当然也可以这么做,但这些注释有利于理解代码的含义,很值得一读)

在前面的文章中我们经由过程领导添加了菜单敕令和对象窗口。在这个例子中我们将手动添加。

手动添加新的菜单项

为了显示一个菜单项,我们要这样做:

为敕令创建一个ID、名字和显示的文本,该敕令用于显示tool wind澳门新葡亰平台游戏aow

创建.vsct文件来设置所谓的command table configuration

为package类添加ProvideMenuAttribute

设置.vsct文件的Build Action

创建菜单项的事故处置惩罚函数

建立敕令和该事故处置惩罚函数的关联

什么是command table configuration文件?

在之前的文章中,我提到过VSPackages是“按需加载(on-demand loaded)”的,当packages中的工具将要被创建,或者此中的办事将要被应用的时刻IDE才将他们装载进内存。这听起来不错,不过有个问题:假如工具表示了菜单或者对象栏工具,并且和package的源代码编译在一路,那么IDE不得不仅仅为了展示这些UI而加载这个package,哪怕这个package并没有被应用。为了显示这些跟package相关的菜单和对象栏(而避免上述环境的发生),这些工具被设计成package的二进制资本。当package被注册(经由过程regpkg.exe)时,这些资本被提取并分开寄放,这样Visual Studio就可以在不加载package的环境下显示这些资本。

command table configuration文件是要实现这个策略的关键。这个文件的职责是定义与敕令相关的UI元素。当我们编译一个package时,command table configuration文件转换成一个cto文件(command table output file),并作为一个资本,编译到package中。

在vs2005版本的VS SDK中,应用一种文本形式的command table configuration文件(.ctc后缀)。理解和编辑.ctc文件不是件轻易的事。跟着Visual Studio 2008澳门新葡亰平台游戏a SDK的宣布,微软创建了一种基于XML的文件款式(.vsct: Visual Studio Command Table),并且配以一种新的编译器(VSCTCompile)来将.vsct文件编译成.cto文件。

vsct文件主要的优点是它像其他xml文件一样,很轻易编辑,并且沿袭了XML所有的好的特点,比如自动天生停止标签和基于vsct XML 架构的智能感知。只管仍旧可以应用ctc文件,但微软保举应用vsct文件。

第一步:增添一个command ID

为Command指定ID的目的,是为了将这个package里的敕令项和Visual Studio中的敕令项或其他package中的加以区分。Command因此ID作为标识的UI相关的工具,就像菜单项或者bitmaps那样。UI相关工具的ID是分层次的,由一个GUID和32位无符号整数组成。GUID表示逻辑上拥有这些UI工具的容器,而32位无符号数则用来在容器内部区分不合的工具。

领导天生的Guids.cs文件包孕了一个用于标识package的GUID和澳门新葡亰平台游戏a一个用于标识敕令集(command set)的GUID:

1: using System;

2: namespace MyCompany.StartupToolset

3: {

4:static class GuidList

5:{

6:public const string guidStartupToolsetPkgString = "1376bfe2-5278-493d-867e-2b5ba828368d";

7:public const string guidStartupToolsetCmdSetString = "ec3d3ea6-2261-4a18-a458-78591688e06d";

8:public static readonly Guid guidStartupToolsetCmdSet = new Guid(guidStartupToolsetCmdSetString);

9:}

10: }

您可能还会对下面的文章感兴趣: