本 Hello World 示例指导你完成为 Visual Studio 创建第一个扩展。 本教程介绍如何向 Visual Studio 添加新命令。
在此过程中,你将了解如何:
在本示例中,使用 Visual C# 添加一个名为“Say Hello World!”的自定义菜单按钮,如下所示:
先决条件
在开始之前,请确保已安装 Visual Studio 扩展开发 工作负载,其中包括 VSIX 模板和示例代码。
注意
可以使用任何版本的 Visual Studio(Community、Professional 或 Enterprise)创建 Visual Studio 扩展性项目。
创建扩展性项目
在“文件”菜单中,选择 “新建>项目”。 搜索“vsix”并选择 C# VSIX Project,然后 下一步。
输入“HelloWorld”作为“项目名称”,然后选择“创建”。
现在,您应该在 解决方案资源管理器中看到 HelloWorld 项目。
添加自定义命令
如果选择
.vsixmanifest
清单文件,可以查看哪些选项可更改,例如说明、作者和版本。右键单击项目(而不是解决方案)。 在上下文菜单上,选择“添加”,然后选择“新建项”。
选择 扩展性 部分,然后选择 命令。
在底部的 名称 字段中,输入文件名,如 Command.cs。
你的新命令文件将显示在“解决方案资源管理器”中。 在 资源 节点下,可以找到与命令相关的其他文件。 例如,如果要修改映像,PNG 文件在此处。
修改源代码
此时,命令和按钮文本是自动生成的,而不是这样有趣的。 如果要进行更改,可以修改 VSCT 文件和 CS 文件。
VSCT 文件是可以重命名命令的位置,并定义它们在 Visual Studio 命令系统中的位置。 浏览 VSCT 文件时,请注意这些注释,它们说明了 VSCT 代码的每个部分的功能。
CS 文件是定义操作的地方,例如点击事件处理程序。
在 解决方案资源管理器中,找到扩展 VSPackage 的 VSCT 文件。 在本例中,它称为 HelloWorldPackage.vsct。
将
ButtonText
参数更改为Say Hello World!
。... <Button guid="guidCommandPackageCmdSet" id="CommandId" priority="0x0100" type="Button"> <Parent guid="guidCommandPackageCmdSet" id="MyMenuGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>Say Hello World!</ButtonText> </Strings> </Button> ...
返回到解决方案资源管理器 ,找到 Command.cs 文件。 在
Execute
方法中,将字符串message
从string.Format(..)
更改为Hello World!
。... private void Execute(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); string message = "Hello World!"; string title = "Command"; // Show a message box to prove we were here VsShellUtilities.ShowMessageBox( this.ServiceProvider, message, title, OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); } ...
请确保将更改保存到每个文件。
运行它
现在可以在 Visual Studio 实验实例中运行源代码。
步骤 1. 按 F5 运行 启动调试 命令。 此命令将构建项目并启动调试器,从而启动一个名为 实验实例的新 Visual Studio 实例。
步骤 2. 在 实验实例工具 菜单上,单击 Say Hello World!。
此时应会看到新自定义命令的输出,在本例中,屏幕中心的对话框会为你提供 Hello World! 消息。
后续步骤
了解使用 Visual Studio 扩展性的基本知识后,可在此处了解详细信息:
- 开始开发 Visual Studio 扩展 - 示例、教程。 和发布扩展
- Visual Studio 2017 SDK 中的新增功能 - Visual Studio 2017 中的新增扩展性功能
- Visual Studio 2019 SDK 中的新增功能 - Visual Studio 2019 中的新增扩展性功能
- 深入探究 Visual Studio SDK - 了解 Visual Studio 扩展性的详细信息