Visual Studio 扩展剖析
VSIX 包是一个 .vsix 文件,其中包含一个或多个 Visual Studio 扩展以及 Visual Studio 用于分类和安装扩展的元数据。 VSIX 包格式遵循开放打包约定 (OPC) 标准,这意味着它可以由任何可以打开 ZIP 文件的工具打开。
扩展项目是一个 C# 项目,其中包含一些使其独特的附加功能。 以下视频探讨了扩展项目,以更好地了解扩展项目的工作原理:
文件结构
使用 VSIX Project w/Command (Community) 模板创建新扩展时,文件结构如下所示:
.vsixmanifest 文件是主文件。 它是一个 XML 文件,其中包含有关 Visual Studio 使用的扩展的信息。 扩展的所有组件都在 .vsixmanifest 文件中注册。 它是 VSIX 项目中唯一必需的文件。
VSCommandTable.vsct 文件是声明命令的位置。 它是一个 XML 文件,包含按钮命令、菜单、键盘快捷方式绑定等的定义。 该文件将其内容编译为 output .dll 中的 blob,Visual Studio 使用该 blob 来构造其整个命令表菜单结构。 此文件仅声明命令表中的组件;而不处理任何命令调用。
*Package.cs 文件是 Package 类,这是大多数扩展的入口点。 在此处,通常会找到已注册的命令处理程序、工具窗口、选项页、服务和其他组件。
编译
项目编译为位于 /bin/debug 或 /bin/release 文件夹中的 .vsix 文件,具体取决于当前的解决方案生成配置。 Visual Studio 扩展开发工作负载提供专用的 MSBuild 目标和任务来处理 VSIX 项目风格。
当 VSIX 项目生成时,它会自动自行部署到实验实例。 这可以在 VSIX 项目设置中进行控制:
实验实例
为了保护 Visual Studio 开发环境免受可能更改它的未经测试的应用程序的影响,VS SDK 提供了可用于实验的实验空间。 可以像往常一样使用 Visual Studio 开发新的应用程序,但可以使用此实验实例来运行它们。
每个具有 VSIX 包的应用程序都会在调试模式下启动 Visual Studio 实验实例。
如果要在特定解决方案外部启动 Visual Studio 的实验实例,请在命令窗口中运行以下命令:
devenv.exe /RootSuffix Exp
有关更多扩展性概念,请查看有用的资源,这些资源将在学习本工具包时派上用场。