安装visual studio 2012 SDK

下载visual studio SDK

安装可能遇到的问题

安装时报错:Visual Studio 2012 Install Fails: Program Compatibility Mode is on。

解决方案:将“vssdk_full.exe”重命名为:“vs_ultimate.exe”。

构建项目

  1. 安装SDK后新建项目选择“扩展性”,就可以看见多了许多项目模版,这里我们选择“Visual Studio Package”。
  2. 创建“HelloWorld”项目,根据向导勾选“Menu Command”,最后点击“finish”。
  3. 完成后运行就可以看见VS在工具栏多了一个菜单。

项目结构

在VS的资源管理器中可以看到由模版自动生成的文件,我们现在需要关注的只有两个。

HelloWorld.vsct

这是一个xml格式的命令表配置文件。 .vsct 文件定义IDE中的UI元素。

Menu

每个Menu都包含在Menus节点下,Menu必须具有 guid、 id和 priority 属性和 Parent 元素,如:

  1. <Menu guid="guidTopLevelMenuCmdSet" id="TopLevelMenu" priority="0x700" type="Menu">
  2. <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS" />
  3. <Strings>
  4. <ButtonText>TestMenu</ButtonText>
  5. <CommandName>TestMenu</CommandName>
  6. </Strings>
  7. </Menu>

Groups

Group在 .vsct 文件的 Groups 节点中定义。

  1. <Group guid="guidTopLevelMenuCmdSet" id="MyMenuGroup" priority="0x0600">
  2. <Parent guid="guidTopLevelMenuCmdSet" id="TopLevelMenu"/>
  3. </Group>

Group是Menu的一部分,Group常包含Command,它也可以包含其他Menu。

HelloWorldPackage.cs

HelloWorldPackage继承Package类,类中重写的Initialize()方法是程序的入口。

参考资料

  1. Visual Studio 2012 Install Fails
  2. Visual Studio Command Table (.Vsct) Files
  3. How VSPackages Add User Interface Elements to the IDE
  4. Walkthrough: Adding a Submenu to a Menu
  5. How to: Bind Keyboard Shortcuts to Menu Items
  6. Walkthrough: Adding a Command to the Solution Explorer Toolbar

扩展Visual Studio IDE的更多相关文章

  1. 如何扩展 Visual Studio 编辑器

    在 Visual Studio 2010 的时代,扩展 Visual Studio 的途径有很多,开发者可以选择宏.Add-in.MEF 和 VSPackages 进行自定义的扩展.但是宏在 Visu ...

  2. 分享:扩展Visual Studio 的简单方法

    作为 MS 阵营的码农,相信Visual Studio 肯定是大家的主要武器了,但不知道大家有没有扩展Visual Studio 的需求. 最近我需要做一个工具,发现最好是实现在VS里面,于是,Goo ...

  3. Sencha Visual Studio(IDE插件)

    Sencha Visual Studio(IDE插件) 首先从官网上下载Visual Studio插件,注意不是VSCode编辑器,下载完后安装打开Visual Studio提示你去注册,输入你的se ...

  4. Cannot add Controls from 64-bit Assemblies to the Toolbox or Use in Designers Within the Visual Studio IDE

    原文地址:https://support.microsoft.com/en-us/kb/963017 Source: Microsoft Support RAPID PUBLISHING RAPID ...

  5. 简易扩展Visual Studio UnitTesting支持TestMethodCase

    NUnit的TestCaseAttribute可以简化大量的测试参数输入用例的编写,如果基于Visual Studio Unit Test Project开发则默认没有类似的功能,看一段对比代码: p ...

  6. Visual Studio IDE环境下利用模板创建和手动配置CUDA项目教程

    目前版本的cuda是很方便的,它的一个安装里面包括了Toolkit`SDK`document`Nsight等等,而不用你自己去挨个安装,这样也避免了版本的不同步问题. 1 cuda5.5的下载地址,官 ...

  7. Visual Studio IDE 背景色该为保护眼睛色

    将背景颜色改成你想要的背景颜色. 将色调改为:85.饱和度:123.亮度:205->添加到自定义颜色->在自定义颜色选定点确定   就搞定了!

  8. C# 安装 Visual Studio IDE

    官网: https://visualstudio.microsoft.com/zh-hans/ 下载社区版(免费的) .微软的软件安装都是很nice的.安装过程中选择需要的配置进行安装(比如.net桌 ...

  9. Visual Studio发展历程初浅调研

    名称 内部版本 发布日期 支持.NET Framework版本 核心功能 竞争对手 优缺点 Visual C++ 1.0 Visual Studio的最初原型 1992 把软件开发带入了可视化开发的时 ...

随机推荐

  1. CVE-2014-0196(马拉松赛跑bug)

    /* * CVE-2014-0196: Linux kernel <= v3.15-rc4: raw mode PTY local echo race * condition * * Sligh ...

  2. 4G时代来临,运营商为谁搭台献唱?

        4G时代已然来临.对用户而言,4G意味着更快的传输速度,以及更优质的移动网络体验. 只是对运营商而言.怎样部署4G却成了一大难题.众所周知,在全球范围内,4G LTE成为眼下最率先的移动宽带解 ...

  3. C# string.Format谨慎使用

    string.Format string.Format在处理文本的时候很有用处,但是在使用占位符的时候一定要注意内容中的特殊字符{}. 示例 string.Format("你好{0},这是{ ...

  4. Activity 状态的保存和恢复

    Activity状态保存的两种情况 一.Activity状态保持概念 保存Activity的状态是非常重要的,例如我们在玩一个游戏的时候,突然来了一个电话,这个时候在接听完电话之后我们返回到游戏中,这 ...

  5. 用timer控件实现sleep效果

    有时候我们需要代码延迟执行,这就需要用到Thread.Sleep()这个方法,但这个方法在主线程使用时会造成界面假死.使用timer控件既能达到代码延迟执行的效果,又不会有假死的困扰. 假设我们需要在 ...

  6. (转)SQL流程控制语句学习(一):变量及控制语句种类

    1.局部变量 用户自己定义的,称局部变量,以@标识. 作用范围:定义局部变量的批处理.存储过程.触发器和语句块 局部变量的定义: declare @局部变量名 数据类型 注意:变量的类型不能是text ...

  7. maven项目,去除jar包中的不想要的依赖关系(Document root element "beans", must match DOCTYPE root "null". )

    maven dependencies中并不会删除 以下方法maven dependencies中并不会删除,可能程序引入的时候,会去掉这种依赖(猜的) 解释: 就是说项目中要用到某一个a.jar包,通 ...

  8. Oracle 优化——位图、函数等索引介绍

    一.位图索引 我将使用一个例子,来描述位图索引的存储,并分析它的优点. Table :Loans 放贷信息 ID userId 行业投向 币种 证件类型 还本付息方式 状态 1 1 农业 人民币 身份 ...

  9. 1201.1——Vim编辑器的相关操作

    一 vi的操作模式 vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode).在输入模式下,用户可输入文本资料.在指令模式下,可进行删除.修改等各种编辑动作. 在 ...

  10. web基础--html

    WebBasic 1.web应用体系 课程大纲 1.web基础:做网页     2.结构:         a.html             勾勒网页结构及内容         b.css     ...