教程 - 创建第一个扩展:Hello World
此 Hello World 示例将引导你完成为 Visual Studio 创建第一个扩展。 本教程介绍如何向 Visual Studio 添加新命令。
在此过程中,你将了解如何:
在本示例中,使用 Visual C# 添加一个名为“Say Hello World!”的自定义菜单按钮,如下所示:
注意
本文适用于 Windows 上的 Visual Studio。 对于 Visual Studio for Mac,请参阅 Visual Studio for Mac 中的扩展性演练。
先决条件
在开始之前,请确保已安装 Visual Studio 扩展开发 工作负载,其中包括 VSIX 模板和示例代码。
注意
可以使用任何版本的 Visual Studio(Community、Professional 或 Enterprise)来创建 Visual Studio 扩展性项目。
创建扩展性项目
从“文件”菜单中选择“新建”>“项目” 。 搜索“vsix”并选择 C# VSIX 项目,然后选择“下一步”。
输入“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 扩展性的详细信息