问题标签 [vspackage]

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 回答
532 浏览

visual-studio-2010 - VS2010 VSPackage 项目可以安装到VS2008吗?

我想知道在 Visual Studio 2010 中创建和编写的 VSPackage 项目的结果 VSIX 工件是否可以部署到 Visual Studio 2008 - 当然,前提是该包不使用/不依赖任何 .NET 4 程序集?

或者,可能存在哪些其他路径,允许我从 VS2010 解决方案创建针对 VS2008 和 VS2010 的可安装扩展?

0 投票
1 回答
2258 浏览

visual-studio - VSPackage:在运行时修改工具栏按钮文本/工具提示

我一直在开发一个 Visual Studio 扩展作为 VS2008/2010 的插件。现在的新版本仅作为 VS2010 的 VSIX 包完成(因为无论如何它必须是 .NET 4),并且我在处理 UI 时遇到了一些麻烦(我认为相当简单)。

该扩展主要由一个工具栏组成,其中包含一些用于启动各种操作、表单等的按钮,以及一些仅用作显示某些状态信息的标签。“标签”按钮本身只显示非常简短的信息,而工具提示提供更多细节。

虽然我不认为整个 Add-in 的东西非常优雅,但做这种事情非常简单(尽管我的方法可能有点业余)。将命令添加到工具栏时,我会将“标签”按钮“保存”在特定的局部变量中,以便以后随意设置标题和工具提示文本。

在 VSPackage 中,等效于Microsoft.VisualStudio.CommandBars.CommandBarButton似乎是OleMenuCommand通过MenuCommandService找到“label”命令是没有问题的,但是根据需要修改它。

为了了解如何执行此操作,我只有一个工具栏,其中包含一组中的两个按钮。btnAction非常简单;只是一个图标和一个执行处理程序来更改另一个按钮上的文本,没有 CommandFlags。 btnLabel在 .vsct 中如下所示:

第一个问题是,当我使用TextChanges时,ToolTipText字符串被忽略,并且ButtonText最初也用于工具提示。

动作按钮的处理程序代码如下:

这会按预期更改btnLabel的标题,但由于无法显式指定工具提示(OleMenuCommand对象只有一个Text属性,与CommandBarButton不同,后者同时具有CaptionTooltipText),工具提示始终设置为相同的字符串作为标题。据我了解,这是因为使用 FindCommand() 我实际上并没有获得 UI 按钮,而只是获得了与工具提示无关的底层命令。

更令人困惑的是,当我使用TextChangesButton CommandFlag 而不是TextChanges时会发生什么。该按钮现在将正确显示 .vsct 中定义的工具提示文本,但是当我单击另一个按钮时,标题和工具提示都不会改变 - 尽管当我检查btnLabel命令的Text属性时,它被设置为我所期望的(“点击 x 次”)。TextChangesButton是否将命令和按钮的属性“解耦”?如果是这样,这几乎就是我想要的(我不关心命令,因为无论如何都没有执行任何操作;btnLabel将始终被禁用),

我浏览了各种 IVs 接口和 SVs 服务,但找不到合适的东西,并且文档(和 IntelliSense 帮助)似乎不是很广泛。

0 投票
1 回答
211 浏览

.net - Visual Studio 2010 包可以安装在 Visual Studio 2008 中吗?

我想要一个可在 VS2008 中加载的 Visual Studio 包。为此,我已按照以下步骤操作:

  1. 在 VS2008 中创建了一个新的包项目并确保它可以正常加载
  2. 将项目移植到 VS2010 格式,在那里编译并确保它可以工作。
  3. 然后我将目标框架更改为 .NET 4,编译时收到以下消息:regpkg : error : Could not load file or assembly 'file:///C:\SVN\Debugger\src\Visualizer2008\bin\x86\Debug\Visualizer2008.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

问题

  1. 首先,是否有可能将 .NET 4 包加载到 VS2008 中?
  2. 如果是,那么我该怎么做才能成功注册?

谢谢!

0 投票
1 回答
807 浏览

c# - 获取鼠标指针下的文本

我对 C# 比较陌生。谁能告诉我如何在文本编辑器上显示工具提示...就像当我们将鼠标移到 VS intellisense 扩展特定方法时一样???由于我正在开发添加我希望工具提示显示在文档上(没有与之关联的表单)如何提前获取鼠标指针下的文本thanx

0 投票
1 回答
258 浏览

visual-studio - Visual Studio 扩展

我想在“服务参考”项的上下文菜单和“服务参考”文件夹的上下文菜单中添加一个菜单项,但我似乎找不到正确的 ID 列为父项.

到目前为止,我已经能够找到项目节点、引用节点和引用项的上下文菜单的 ID。

我一直在搜索 vsshlids.h,但找不到正确的 ID。

0 投票
4 回答
2361 浏览

c# - 从 Visual Studio 编辑器获取文件路径

我正在开发一个用 C# 编写的 Visual Studio 包。

如何以编程方式获取活动编辑器的完整路径?

0 投票
1 回答
1175 浏览

c# - VSPackage:没有打开“真实”解决方案时如何获取选定的文件

我正在用 C# 开发一个VSPackage,我想知道当只有一个文件(或在 Visual Studio 中打开多个文件)时如何获取当前文件。

当有层次结构(打开一个真正的解决方案)时,一切正常。但是当我在 Visual Studio 中打开单个文件时,我无法获得当前选择。我的意思是打开 Visual Studio(没有解决方案)和select File-> Open-> File

我需要获得其中之一:itemid、documentCookie、mkDocumentName 或其他。

我尝试了以下方法:

  • IVsMonitorSelection.GetCurrentSelection()-> 它总是检索没有层次结构的解决方案项目 id (Intpr.Zero)
  • IVsSelectionEvents-> 我尝试监听选择事件,新的 itemId 始终是解决方案 itemid
  • RunningDocumentTable-> 好吧,我快找到解决方案了,因为我可以枚举打开的文件,但我不确定如何确定哪个是当前文件。
0 投票
1 回答
1700 浏览

visual-studio-2010 - 如何调试 VSPackage 项目

我安装了 VS2010 SDK 并创建了一个 VSPackage 项目,使用了一个空的“Initialize”方法。

如果我在“初始化”方法中设置断点并在调试模式下运行项目,它会启动实验性 VS 实例,但断点没有命中。它说没有加载调试符号。

我究竟做错了什么?

谢谢你的帮助,恩拉

0 投票
1 回答
1254 浏览

c# - 在 VS Package 项目中获取 dte2 或 TeamFoundationServerExt 对象?

我正在开发一个 Visual Studio 包项目。这个项目需要连接到我们的 TFS。要读取当前连接,我需要 TeamFoundationServerExt 对象,我应该能够从 dte2 对象中获取该对象。

现在我发现了数百个示例,其中大多数都在使用“_application”变量,该变量似乎会自动填充,但当然不适用于“Visual Studio Package”项目类型。

如何获取当前运行的 VS2010 的 TeamFoundationServerExt 对象?

0 投票
2 回答
578 浏览

visual-studio-2010 - VS 可扩展性架构(包 API/Visual Studio 库)

MSDN 扩展平台描述

最近我发现上面显示的来自微软的 Visual Studio 可扩展性平台图表。

大多数事情对我来说都很清楚。但是,我想知道 Package API 和 VSL(Visual Studio 库)。

我试图找到更多,但找不到任何信息。

我不太明白
的事情:-Package API 到底是什么?
- VSL 到底是什么?
- InteropAssemblies/VSL 和 Package API 之间有什么关系?InteropAssemblies 是否包装了对 Package API 的访问?
- 为什么要在实现原生包时使用 VSL?有什么好处?

有没有人有更多关于这些主题的信息,或者有人知道一些资源?