问题标签 [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 回答
221 浏览

visual-studio-2010 - 从另一个 ToolWindowPane 查找/访问 Visual Studio 中的其他 ToolWindowPane?

有没有办法找到所有或一个特定的 Visual Studio ToolWindowPane,例如,我有一个 ToolWindowPane 需要获取一个特定的其他 ToolWindowPane(如果已加载/可用)。

这是可行的,如果可行,怎么做?

0 投票
1 回答
2615 浏览

vspackage - 如何使用 VS Package 在解决方案资源管理器中获取选定项目的项目类型 Guid

我创建了简单的 VS 包,用于在解决方案资源管理器的上下文菜单中添加新项目。我需要检查选定项目的项目类型 GUID。我怎么能得到这个。

例如,One Solution 包含三种不同类型的项目,如 WindowFormsApplication、MVC Projects、WebApplication。在选择 MVC 项目时,我们需要获取该 ProjectType GUID。

我在我的 Package.cs 中尝试了以下内容,

对于所有选定的项目,我将 GUID 设为“FAE04EC0-301F-11D3-BF4B-00C04F79EFBC”。

有人可以帮我吗?

0 投票
1 回答
480 浏览

visual-studio - 有没有办法通过 VSIX 扩展将自定义文件筛选器添加到 Visual Studio 的打开文件对话框?

我正在通过 VSIX 扩展项目实现一组 MEF 扩展。这适用于小型内部 DSL。

我可以让语法突出显示工作得很好。

我想做的是能够在 Visual Studio 的“打开文件”对话框中拥有关联的文件过滤器条目。

有没有办法通过 VSIX 扩展来做到这一点?如果没有,将过滤器添加到该列表的认可方式是什么?

我在 VSPackage 系统中没有看到任何可以做到这一点的东西。

0 投票
1 回答
917 浏览

visual-studio-2010 - 如何向 ADO.NET 实体数据模型设计器的上下文菜单添加命令?

基本上,我需要Visual Studio 包项目文件中的正确值guidid属性,如下所示:.vsct

以上内容直接来自默认项目模板,并在工具主菜单中添加了一个命令。我在哪里可以找到(或如何嗅探)ADO.NET 实体数据模型设计器上下文菜单的 guid:id 值,即带有“从数据库更新模型...”的菜单等等?

在你问之前:VS 2010 Entity Designer 中的 MEF 可扩展性选项不涵盖我的场景 - 我需要实现一个命令来在独立和 FK 映射关联之间进行转换。

0 投票
1 回答
406 浏览

c# - 调用标准“文件在 Visual Studio 之外更改”对话框

我已经在我的 VSPackage 中成功创建了自定义单视图编辑器。我必须处理的许多事情之一是对在 Visual Studio 外部更改编辑文件时的情况做出反应 - Visual Studio 中的“标准”编辑器显示对话框,其中包含“是”、“对所有”(重新加载内容)等选项,因此,如果更改了更多文件,则只显示一个对话框。

但是,到目前为止,我在 VSPackage 中唯一能做的就是在文件更改时显示自定义对话框。这并不漂亮 - 当我的编辑器中编辑的文件与其他一些文件一起更改时,将向用户显示两个完全不同的对话框。

所以问题是 - 有什么方法可以为我的文件调用“标准”Visual Studio“文件在 VS 之外更改”对话框?

0 投票
3 回答
794 浏览

c# - 如何管理 VSPackage 中的撤消/重做堆栈?

我创建了在 Visual Studio 代码窗口上下文菜单中提供某些功能的 VSPackage。这个动作包括几个代码编辑和一些周围的东西。

问题是,这些代码编辑中的每一个都被分别添加到撤消堆栈中。我想要的是将此操作作为一个原子单元来处理,即按 CTRL+Z 回滚所有代码编辑和其他所有内容(当然,还要将该单元放在重做堆栈的顶部)。

关于这个主题的文档非常糟糕,我唯一发现的是关于 IOleParentUndo 单元的东西 - 但我没有成功实施它。

我用

获得撤消管理器 - 这似乎是一个好的开始。

0 投票
1 回答
405 浏览

c# - 在构建之前插入代码

我正在为 Visual Studio 2010 构建一个 vspackage,并且需要能够在构建过程中将代码无形地注入到解决方案中的每个函数中。

目前我可以使用这个:

它将代码直接插入代码文件以供所有人查看。这行得通,但由于代码只收集运行时数据,我永远不需要看到它。有没有办法在构建过程中注入代码而不像上面那样公开插入代码?

我可以为解决方案中的所有代码文件创建临时文件,并将代码注入其中,然后在调试会话结束后处理它们。这会是最好的方法吗?

当 Intellitrace 从正在运行的可执行文件中收集数据时,它不需要做类似的事情吗?我假设它将代码注入每个方法以保存变量状态。

0 投票
1 回答
226 浏览

c# - 如何访问项目代码元数据?

在我的 VSPackage 中,我需要用实际值替换代码中对属性的引用。例如

我想要的是用它的实际值替换“Resource.HelloWorld”——也就是说,找到类 Resource 并获取它的静态属性 HelloWorld 的值。Visual Studio 是否公开任何 API 来处理项目的代码模型?它肯定有一个,因为这与重命名变量的常见任务非常相似。我不想在输出程序集上使用反射,因为它很慢并且会锁定文件一段时间。

0 投票
1 回答
534 浏览

unit-testing - 如何为 Visual Studio 包编写单元测试

我现在正在做一个 Visual Studio 包项目,目前我们所有的测试只是模拟我们与 Visual Studio 交互的方式,包括窗口打开和关闭、菜单选择、按钮点击等。我认为这些测试可以归类为集成测试和它们高度依赖于 devenv.exe 进程。对于纯单元测试,我只想测试我的一个业务逻辑并模拟其他依赖项。虽然 Visual Studio SDK 在 SDK 文件夹中的路径 VisualStudioIntegration\Common\Source\CSharp\UnitTest 下包含一个测试库,但我发现它太简单了项目,太年轻了,无法在我的项目中使用。当我尝试从头开始编写单元测试时,我遇到了很多关于模拟 VSX 接口的问题。关于 VSX 单元测试的资源也很少,任何人都可以给我一些提示或链接吗?任何帮助表示赞赏。

0 投票
1 回答
166 浏览

visual-studio-2010 - 从 VS2010 VsPackage 签出文件

我有一个 VS2010 VsPackage,它为某种基于 XML 的文件格式实现了一个编辑器。

目前,如果文件是只读的,我会显示错误。我想在编辑之前检查文件是否受源代码控制,并提出签出文件或取消编辑操作。

如何从我的扩展包代码中执行此操作?