vs-extensibility相关内容

如何对与 VS DOM 交互的 Visual Studio 插件进行单元测试

我开发了一个 Visual Studio 插件,它与 Visual Studio DOM 交互并修改加载的解决方案. 虽然我已经努力分离与 DOM 交互的代码并可以通过单元测试对其他业务逻辑进行单元测试,但有没有办法对 VS DOM 交互功能和添加自定义菜单项的加载项初始化代码进行单元测试视觉工作室? 解决方案 这可能有助于回答这个问题...我有一个代码示例来创建一个 DTE VS 实例 ..
发布时间:2022-01-14 18:10:29 C#/.NET

从 DTE 访问属性信息

我编写了如下代码: [属性(typeof(MyCustomType))]公共类目标类型{//.....} 我想使用 EnvDTE 来获取对 typeof 引用的 CodeElement 的引用.我知道如何获取对属性参数的引用,并且可以使用 Value,但这给了我字符串 typeof(MyCustomType). 如果我使用 Value,我必须分解字符串,然后尝试查找类型,如果有两个类型名 ..
发布时间:2022-01-13 18:23:15 C#/.NET

VSIX 包不包含引用程序集的本地化资源

我正在创建一个 VS2010 扩展(我们称之为 MyExtension).此扩展的 UI 位于不同的程序集中 (MyExtension.UI),扩展项目仅包含从菜单命令调用 UI 的样板代码. MyExtension.UI 包含本地化资源(例如 fr\MyExtensions.UI.resources.dll),但 VSIX 包不包含这些资源(尽管它们是存在于 bin\Debug 目录中). ..

Visual Studio 2010 可扩展性 - 覆盖构建操作而不影响 cproj 文件

我正在研究一种无需更改 cproj 文件即可在 Visual Studio 2010 中构建 MonoTouch 项目的方法.我快到了,但最后一步是在 MonoTouch 项目中具有构建操作“Page"的 *.xib 文件. 在 Visual Studio 2010 bild action Page 将调用 XAML 编译器,因此为了在 VS2010 中构建项目,我需要将构建操作设置为 No ..
发布时间:2021-09-29 20:44:06 其他开发

在 vsix 包中使用 DynamicItemStart 时如何更新 Visual Studio UI

我正在菜单控制器中实现一个 DynamicItemStart 按钮.当 Visual Studio 启动时,我正在加载此按钮的动态项目.一切都已正确加载,因此调用 initialize 方法并在此动态按钮中看到所有新项目.包完全加载后,我想向此动态按钮添加更多项目,但由于包已加载,因此不会再次调用 initialize 方法,因此我无法在此动态按钮中看到新项目.我只看到VS启动时加载的那些. ..

创建 VSIX 工具窗口时如何匹配 Visual Studio 的主题?

我正在为 Visual Studio (2012+) 创建一个涉及工具窗口的扩展.我希望为窗口设置相同的样式以匹配 Visual Studio 的当前主题.但是,我在弄清楚如何去做时遇到了很多麻烦. 这篇文章 表明完全不需要应用任何样式,但这与我迄今为止的经验不符(甚至在 VS2017 和添加一个工具窗口会显示一个按钮,我认为它是主题中的标准 WPF 而不是 VS 主题,至少在 VS2017 ..
发布时间:2021-09-19 20:41:16 其他开发

完成保存文件后运行脚本 - Visual Studio 扩展性

谁能给我一些 Visual Studio 扩展性的示例代码,我可以从文档中获取文本,当 Save 事件结束时,并使用该文本在 C# 中运行脚本(例如,触发某个文件的 Web 服务扩展名).它也可以是一个新按钮(例如,保存在网络服务中). 解决方案 您可以订阅DocumentSaved事件: events = DTE.Events;documentEvents = events.Docu ..
发布时间:2021-09-19 20:41:10 C#/.NET

如何获取VS Server Explorer窗口DDEX选中的连接节点对象

我正在为我的 VS 扩展的服务器资源管理器中的连接节点添加一些选项.对于我添加的菜单选项之一,我需要获取所选连接的连接字符串,因此我尝试通过在 BeforeQueryStatus 事件和命令处理程序方法中添加一些代码来实现这一点.但看起来我错过了一些东西,因为每次我想获得 DataViewHierarchyAccessor 的实例时,我总是得到一个空值.虽然如果我做同样的事情但在较低级别的节点中工 ..

如何在 VS2017 中用 C# 为 SQL Server Management Studio 17 创建扩展?

我遵循了来自 创建您的第一个扩展的简单 Hello World 示例:来自 Microsoft Docs 的 Hello World 示例,用于为 SSMS 2017 构建扩展 从可扩展性项目模板创建 VSIX 项目 将“项目">“属性">“调试"中的“启动外部程序"更改为 C:\Program Files (x86)\Microsoft SQL Server\140\Tools\B ..

VS 2012 扩展中的标准控件

我目前正在更改公司内部的 VS 扩展以支持 Visual Studio 2012.我正在努力解决的是如何使 UI 动态适应活动的 VS 主题. 我发现了几个颜色/画笔的资源键(Microsoft.VisualStudio.Shell.11.0.dll 中的 VsColors/VsBrushes),我可以轻松地使用它们来更改扩展的基本配色方案.问题是标准控件(文本框、组合框、复选框)具有默认的 ..
发布时间:2021-09-19 18:36:35 其他开发

dte.Solution.SolutionBuild.StartupProjects 改变时是否有事件触发?

我正在构建一个 Visual Studio 2010 插件供我公司内部使用.我想自定义主窗口标题以显示当前启动项目的名称.我可以使用以下代码设置主窗口的标题: DTE d = GlobalClass.dte2 作为 DTE;IntPtr hWnd = new System.IntPtr(d.MainWindow.HWnd);if (d.Solution.SolutionBuild.Startu ..

Visual Studio 2010 可扩展性、MPF 和语言服务

我正在尝试扩展 Visual Studio 2010 RC 以便能够使用自定义编程语言. 我尝试做的前两件事是语法高亮/智能感知功能(很容易完成,感谢来自 PDC09 的“Ook!"示例)和创建新项目模板的可能性(即能够打开 *.myproj 文件). 对于第二个任务,我找不到任何简单的教程或示例.大多数示例适用于 Visual Studio 2008(如 IronPython 集成) ..

如何制作运行 VSIX 方法的快捷方式?

请参阅这个问题. 最初的问题解决了,我的扩展中有一个方法.我希望当用户安装扩展程序时,也应该安装一个键盘快捷键,并且应该在按下时运行该方法. 我该怎么做? 解决方案 您可以向 .vsct 文件添加快捷方式.当您生成一个新扩展并说它将有一个菜单命令时,该文件会在向导中自动创建.手动添加: 创建 MyCommands.vsct 将文件属性设置为 VSCTCompile 卸 ..

是否可以在 Visual Studio 2010 包中使用 .ctc 文件?

我有一个 VSPackage,它最初是作为 Visual Studio 2005 项目使用的,已成功迁移到 Visual Studio 2008,现在正在迁移到 Visual Studio 2010. 问题是所有菜单都定义在一个 .ctc 文件中,据我所知,该文件现已被基于 XML 的 .vsct 文件所取代,并且它们不再工作. 有没有办法让 Visual Studio 2010 像以 ..

如何为 VisualStudio2012 包中的 SolutionBuild.BuildProject 调用设置目标平台

我有一个解决方案,它设置了大量使用 nmake 构建的项目.我正在尝试为 VS2012 编写一个扩展,它只是在 IDE 中设置的启动项目上调用构建,因为基本的 f5 构建活动项目通常不是启动项目.我设法通过从 EnvDTE.Solution 接口查找所有项目并将唯一名称与在 Solution.StartupProjects 集合中找到的唯一名称进行比较并利用 Solution.SolutionBu ..
发布时间:2021-09-18 20:11:11 C#/.NET

VC++项目“包含在项目中"以编程方式

有没有办法通过 VCProject 或 EnvDTE 接口以编程方式将文件夹包含到 VC++ 项目中? 解决方案 查看示例宏 - View ->其他窗口 ->宏资源管理器.Samples/AddDirAsSlnFolder 中有一个向您展示了如何在项目中创建节点和添加文件.它在 VisualBasic 中,但是一旦您看到使用了 EnvDTE 中的哪些方法,就很容易将其转换为 C#,例如 ..
发布时间:2021-09-18 20:10:59 C#/.NET

如何以编程方式检查 Visual Studio 扩展中的堆栈?

在 VS 扩展中,假设代码刚刚遇到断点,并且处于中断模式.如何以编程方式检查堆栈?另外,有没有办法找出最后执行的语句是什么? 我找不到高级示例.有 hello-world 类型示例 但他们主要专注于在 Visual Studio IDE 中添加/修改 UI 元素. 解决方案 您需要挂钩 EnvDTE.Events.DebuggerEvents.OnEnterBreakMode 事件或 ..
发布时间:2021-09-18 20:07:47 其他开发