Visual Studio 扩展剖析

VSIX 包是一个 .vsix 文件,其中包含一个或多个 Visual Studio 扩展以及 Visual Studio 用于分类和安装扩展的元数据。 VSIX 包格式遵循开放打包约定(OPC)标准,这意味着它可以由任何可以打开 ZIP 文件的工具打开。

扩展项目是一个 C# 项目,具有一些额外的功能,使其唯一。 以下视频探讨了扩展项目,以更好地了解扩展项目的工作原理:

文件结构

使用 VSIX Project w/Command (Community) 模板创建新扩展时,文件结构如下所示:

VSIX 项目的文件结构。

.vsixmanifest 文件是主文件。 它是一个 XML 文件,其中包含有关 Visual Studio 使用的扩展的信息。 扩展的所有组件都被注册在 .vsixmanifest 文件中。 它是 VSIX 项目中唯一必需的文件。

VSCommandTable.vsct 文件是声明命令的位置。 它是一个 XML 文件,包含按钮命令、菜单、键盘快捷方式绑定等的定义。 该文件将其内容编译为一个 blob,存储在输出 .dll 中,供 Visual Studio 用于构建其整个命令表菜单结构。 此文件仅声明命令表中的组件;它不处理任何命令调用。

*Package.cs 文件是包类,这是大多数扩展的入口点。 在此处,通常会找到注册的命令处理程序、工具窗口、选项页、服务和其他组件。

汇编

项目编译为位于 /bin/debug/bin/release 文件夹中的 .vsix 文件,具体取决于当前的解决方案生成配置。 Visual Studio 扩展开发工作负载 提供专用的 MSBuild 目标和任务来处理 VSIX 项目类型。

当 VSIX 项目生成时,它会自动自行部署到实验实例。 这可以在 VSIX 项目设置中控制:

VSIX 项目属性。

试验实例

为了保护 Visual Studio 开发环境免受可能更改它的未经测试的应用程序,VSSDK 提供了可用于试验的实验空间。 像往常一样使用 Visual Studio 开发新应用程序,但使用此实验实例运行它们。

每个具有 VSIX 包的应用程序都会在调试模式下启动 Visual Studio 试验实例。

如果要在特定解决方案外部启动 Visual Studio 的实验实例,请在命令窗口中运行以下命令:

devenv.exe /RootSuffix Exp

如需了解更多可扩展性概念,请查看有用资源,这些资源在学习本工具包时会很有用。