问题标签 [vs-extensibility]

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 投票
2 回答
480 浏览

c# - EnvDTE.Expression - 以编程方式获取 DataMembers 的内部名称

假设我有 C# 代码行:

var myList = 新列表 {1,2,3};

然后我将“myList”放在监视窗口中,然后将列表的第一项向下拖动,监视窗口将创建一个包含该数据成员内部名称的新行,在这种情况下为

(新 System.Collections.Generic.Mscorlib_CollectionDebugView(myList)).Items[0]

我的问题是,有没有办法以编程方式从 EnvDTE 的 Expression 的 DataMember 中获取这个内部名称?

非常感谢!

0 投票
1 回答
69 浏览

.net - Net 4.0 Wpf UserControl Library - 可以在 VS 2008 Package ToolWindow 中引用吗

我有一个使用 WPF 用户控件库的工具窗口构建可扩展性包的项目。我有 VS 2008 和 VS 2010 版本。如果我将 Net 框架保持在 3.5 或更低版本,则很容易为这两个版本重用 Wpf。我被要求将现有的 Silverlight 4.0/Net 4.0 应用程序转换为 WPF。它使用了 4.0 的许多功能,并且将其重新设计为更少的版本是主要工作。我已经运行测试以尝试使用 Net 4.0 Wpf 并且 VS 2008 包拒绝识别参考。

我的问题是:在 VS 2008 包中使用 Wpf Net 4.0 是否可行?


0 投票
1 回答
549 浏览

visual-studio-2010 - 从 VSPackage 部署配置文件?

我有一个依赖于 NLog 进行日志记录的 Visual Studio 扩展(CustomTool)。我想将 NLog 配置文件部署到工具程序集通过 VSPackage 安装到的同一目录中。

我查看了 Vsix 清单,但似乎找不到部署此类工件的方法。

有没有办法这样做?

更新:

显然,如果在从主 VSIX 项目引用的项目的文件上设置了“复制到输出”,它将打包该文件。但是,如果文件位于主 VSIX 项目中,情况并非如此,即使已设置“复制到输出”?!有什么方法可以实现吗?

0 投票
1 回答
341 浏览

xml - Intellisense 是否支持 xs:key/xs:keyref?

考虑这个 XML 片段:

和一个描述它的xsd:

现在,这几乎可以工作,即。列表中的语言必须是唯一的,并且“默认”属性必须引用列表中的一种语言。我还获得了对“id”和“默认”字段的 Intellisense 支持。但我希望 Intellisense 仅从 xml 文件中的列表中为“默认”字段提出语言 - 而不是全部来自 availableCultures 类型(毕竟它们是唯一有效的语言)。我怎么做?

为什么我怀疑这应该是可行的?因为在编写上述 xsd 文件时,Intellisense 在 'xs:attribute' 元素的 'type' 属性的下拉列表中显示了“mstns:availableCultures”。

我不知道这是否可以单独使用 xsd 来完成,或者我需要编写某种 VS 包/插件。

0 投票
3 回答
1735 浏览

c# - Visual Studio 2010 的硬件

有没有办法从 VSIX 扩展中获取指向 Visual Studio 2010 顶部窗口的 HWnd 指针?(我想更改窗口的标题)。

0 投票
1 回答
539 浏览

c# - 如何从另一个线程正确访问 COM 对象 DTE2.Windows 枚举器?

我有一个使用System.Timers.TimermyTimer 的 Visual Studio 加载项。
每 N 秒 myTimer 触发并执行以下代码:

因为这是从另一个线程调用的,所以我有时会遇到以下错误之一:

  • IEnumVARIANT 的 QI 在非托管服务器上失败。
    在 foreach 线上的 EnvDTE.Windows.GetEnumerator()
    (DTE2.Windows 中的窗口窗口)

  • 应用程序调用了为不同线程编组的接口。(HRESULT 异常:0x8001010E (RPC_E_WRONG_THREAD))
    在 EnvDTE.Window.get_Document()
    行 TextDocument td = window.Document.Object("TextDocument") as TextDocument;

由于涉及 COM 对象,在另一个线程中访问此枚举器的正确方法是什么?
某种 COM 线程编组?
还有什么?

0 投票
1 回答
119 浏览

visual-studio-2008 - VSPackage 异常

我正在开发 Visual Studio 的扩展,由于我的代码中存在错误,IDE 崩溃了,现在每次我想加载扩展时,我都会收到以下消息:

在它崩溃的那一刻,加载扩展程序一切正常。崩溃仅与应用程序的逻辑有关。

我怎样才能再次加载扩展以便能够调试它?

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 投票
2 回答
346 浏览

visual-studio-2010 - 拦截 Visual Studio 粘贴操作

是否可以拦截 Visual Studio 的粘贴事件以转换正在粘贴的文本?我知道我可以编写自己的命令来执行智能粘贴,但是对于大多数人来说,将此命令映射到键盘快捷键是一件苦差事。此外,大多数人习惯于 Ctrl+V。有机会我可以在那里插入我的商品吗?