问题标签 [vsct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
765 浏览

visual-studio-2015 - 在 Visual Studio 扩展中使用内置图标

我需要执行哪些步骤才能在我的扩展工具栏中使用 Visual Studio 的一些内置图标(例如打开、保存、运行、中断图标)?

我曾尝试在我的 VSCT 文件中使用常量,cmdidSave例如stdidcmd.h

但它不显示图标。相反,它开始以文本样式显示按钮(文本标题而不是图像)。

另一方面,如果我使用“图像剥离方法”(如在默认扩展模板中所做的那样),它工作得很好,但这不是我想要做的。

0 投票
1 回答
162 浏览

visual-studio - 如何在 vs 扩展 .VSCT 上的菜单中添加图标

如何在一级菜单中添加图标。这是在解决方案资源管理器的上下文菜单中

在 Button 上,我可以使用 Icon 元素,但不能使用 Menu 元素?谢谢

0 投票
2 回答
1539 浏览

c# - 如何在 Visual Studio 2017 VSIX C# 项目中启用/禁用命令

我正在使用 C# VSIX 项目开发 Visual Studio 2017 的扩展。我需要根据 .ini 文件中的设置创建可变数量的命令。我想创建最大数量的命令(因为在 VSIX 项目中,每个命令都需要一个新的 .cs 文件),并且只启用写在 .ini 文件中的命令。不幸的是,我不知道如何禁用命令。当布尔值变为真时,我需要启用命令。

我已经看到我需要使用 OleMenuCommand 类,但我没有 Initialize() 和 StatusQuery() 方法。如何动态启用我的命令?

0 投票
1 回答
68 浏览

visual-studio - 进行扩展以为两个不同版本的 Visual Studio 构建不同的菜单

Visual Studio Extensions 的文档说我可以为vsct文件中的元素应用条件。

https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/extensibility/vsct-xml-schema-conditional-attributes.md

我一直在尝试为 VS2019 和其他菜单构建不同的菜单。我创建了一个VS2019为 Visual Studio 2019+ 定义的条件编译符号。

菜单在 VS2017 和 VS2019 上都不会出现。

0 投票
1 回答
339 浏览

visual-studio - VSCT 菜单项未显示

Visual Studio 2019 16.5.0 预览版 1。

我试图让我的菜单项显示在一个组中或不同的菜单上。

目前,如果我将菜单项指向 IDG_VS_WNDO_OTRWNDWS1,则菜单项会显示在 Visual Studio 的“查看/其他 Windows”菜单中,但如果我尝试将它们指向 MyMenuGroup,它们就不会出现。代码将运行,但菜单项永远不会出现在菜单上。如果我尝试将按钮指向 IDM_VS_MENU_EXTENSIONS,它甚至不会编译,并给出以下错误:

下面是我的代码:

任何线索我的代码有什么问题?

0 投票
0 回答
78 浏览

c# - vsct 监听 ProjectItemsEvents.ItemAdded 没有捕捉到任何东西

VS2019 16.5.0 预览1

当项目添加、删除或重命名项目时,我试图捕捉事件。

当解决方案打开和关闭,或者添加或删除项目时,我正在捕捉,但在将单个文件添加到项目时我没有捕捉到。

在 ItemAddedHandler、ItemRemovedHandler 或 ItemRenamedHandler 上放置断点根本没有任何效果。当扩展在实验实例中运行时,当我从项目中添加、重命名或删除文件时,这些方法永远不会被调用。

我发现引用了其他有类似问题的人,但这些都与垃圾收集有关,我不相信这是我的问题,因为我有对 events2 和 projectItemsEvents 的引用。

0 投票
1 回答
150 浏览

visual-studio-2019 - 有谁知道解决方案上下文菜单中“添加”子菜单组的 VSSDK id?

我希望从 VS 2019 的解决方案上下文菜单中向以下子菜单组添加一个新按钮(有关预期位置,请参见红色箭头):

新按钮的预期位置

到目前为止,我管理的最接近的是使用 ID 为 IDG_VS_CTXT_SOLUTION_ADD 的主菜单中的“添加”下拉按钮下方。我尝试了以下父 ID 无济于事(甚至没有出现):

IDG_VS_CTXT_SLNFLDR_ADD;IDM_VS_CSCD_SOLUTION_ADD

有谁知道我需要使用的 ID 或我需要对 VSCT 文件进行的更改以使按钮出现在我想要的位置?我使用了 Mads Extensibility 扩展并浏览了许多 vsct 文件以寻找线索但没有运气。

这是我的包 vsct 文件中的命令声明:

0 投票
1 回答
115 浏览

visual-studio - 创建 Visual Studio 扩展以将项目添加到 Git 历史记录页面

我正在尝试创建一个 Visual Studio 2019 扩展。单击历史记录中的提交时,我想在上下文菜单中添加一个附加选项。然后从那里我想获取在该提交之前和之后更改的文件的快照。我无法将按钮添加到上下文菜单中。

我已经安装了命令资源管理器,并且能够找到对上下文菜单的引用。

在此处输入图像描述

但是,当我在 .vsct 文件中添加对它的引用时,它找不到它。

在此处输入图像描述

我想我需要添加一个引用正确头文件的 Extern 元素,但我在我的系统上找不到包含这些值的任何 .h 文件。我还尝试在对象资源管理器中查看 Microsoft.TeamFoundation.Git.Provider.dll 程序集,但没有看到任何有希望的东西。

这是我要扩展的上下文菜单。

在此处输入图像描述

我正在尝试做的事情是否可能,或者 Git History 页面是否以无法扩展的方式构建?

提前感谢您的帮助!

0 投票
1 回答
143 浏览

visual-studio-2019 - 将 VS 2017 扩展升级到 VS 2019

我安装了 VS 2019 并想安装一个我自己开发并在 VS 2017 下运行的扩展。我只是双击 VSIX 文件,VS 安装程序告诉我扩展已安装并确定。但是,我在以前的工具菜单中看不到它;击键也不起作用。我记得当我从早期版本更新到 2017 时,我也有类似的现象;我在VS 2019下重新编译了源代码,但是当我尝试安装它时,经理告诉我扩展已经安装好了。大概我需要删除附加的 VSCT 文件(?),但我怎样才能找到它呢?或者,更好的是,如何卸载我在扩展管理器中看不到的扩展?

0 投票
0 回答
51 浏览

c# - 绑定到 MenuCommand 时,如何使上下文菜单按钮动态可见?

我正在为 VS 2019 开发 Visual Studio 扩展。我添加了一个菜单按钮,当我右键单击它时,它会出现在解决方案资源管理器中某个项目的上下文菜单中。

我想使用自定义 UI 上下文来切换它的可见性,推荐的方法是使用此处描述<VisibilityConstraint>的标签来实现.vsct

所以现在我的按钮在我激活 UI 上下文时可见,而当我以编程方式使上下文不活动时不可见。但是,我希望我的按钮执行命令,所以我添加了一个初始化 OleMenuCommand 的命令类,并绑定到我添加到.vsct文件中的按钮的命令 ID

我在我的 AsyncPackage 中初始化这个命令,就像下面的代码:

由于这个命令,附加到我的按钮,现在我的按钮总是可见的。如果我删除命令的初始化,我的 UI 上下文使我处于非活动状态,并且按钮在需要时被隐藏。

如何让可见性由自定义 UI 上下文(我定义的 guid 并使用IMoniterSelection服务切换)控制?以及如何在单击按钮后仍向按钮添加命令以执行某些操作?

我的.vsct文件看起来像这样

<VisibilityConstraints> <VisibilityItem guid="guidPackageCmdSet" id="CommandIdOfCommandSet" context="UICONTEXT_Switch" /> </VisibilityConstraints>