VSIX 项目上下文菜单

VSIX Project Context Menu

我正在尝试创建一个 Visual Studio 2017 扩展,只是为了好玩并了解 VS 可扩展性的工作原理。

我的扩展必须可以从“解决方案资源管理器”选项卡中用作上下文菜单按钮,但我想将它包含在非根菜单级别。

我的目标是将它放在 "Add" 子菜单中,但目前我只能将它放在根级别(当您右键单击项目项时,菜单项显示为上下文菜单控件的最后一个)。

如何将它移动到 "Add" 节点下?
可以通过我在 .vsct 文件中配置的 CommandPlacement 标签完成吗?

我认为并希望这可能有所帮助,尽管这是一个笼统的答案,而不是一个具体的答案。通过实例学习。

我也希望 WiX 作者不会介意,但我相信他们 Visual Studio 集成组件的来源 "WiX Votive" is here: https://github.com/wixtoolset/VisualStudioExtension.

还有这个:https://github.com/wixtoolset/VisualStudio.wixext。老实说,我不确定这是什么。我应该,但我没有。 Mr.Arnson - 我召唤你(WiX 开发者 - The Matrix 找到你了)。


WiX Votive - VS Integration is part of the overall WiX Toolset - which is a Windows Installer deployment solution capable of compiling MSI files from XML markup. MSI files are the binary deployment files used by Windows Installer 部署在 Windows.

如果您有兴趣 1) download and install WiX itself(当前为 3.11.1),并且 2) 下载并安装正确的 Visual Studio 集成(市场 link 在主要下载下方),确保您获得适合您的 Visual Studio 版本的正确版本 - 当然。两种下载均来自同一个 link(或使用 Visual Studio 市场)。

这里有一些更详细的信息:WiX quick-overview

使用 IDG_VS_CTXT_PROJECT_ADD_ITEMS 组 ID 作为命令的父项。如果您使用的是 CommandPlacement,它将是:

  <CommandPlacement guid="..." id="..." priority="0x0001" >
     <Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_PROJECT_ADD_ITEMS"/>
  </CommandPlacement>

记住:

  • 组的父级可以是另一个组、菜单、工具栏、上下文菜单等,可以由您的扩展程序创建,也可以是由 VS 的现有扩展程序创建,由前缀 "IDM_" 标识。参见 GUIDs and IDs of Visual Studio menus and GUIDs and IDs of Visual Studio toolbars
  • 命令的父级总是一个组,而不是菜单、上下文菜单或工具栏。该组可以是新的(由您的分机创建)或现有的 Visual Studio 组,由前缀 "IDG_" 标识。您在上面的链接中有一些内置的 Visual Studio 组,但要获得更详尽的列表,请安装 ExtensionTools extension (Mads Kristensen) that provides intellisense in the .vsct file or check the source code of its VsctBuiltInCache.cs file.