如何告诉Visual Studio仅加载我当前正在调试的扩展(仅此而已)?

jungle_mole

我已经阅读了如何调试Visual Studio扩展

实际上,VS2013为此自动设置了扩展项目。

我有许多扩展程序(也有附加组件,例如:Resharper,OzCode,GitExtensions ..)。显然,它们所有的加载时间都很慢。

有没有办法在“干净​​的” Visual Studio上运行扩展调试会话?只是香草:没有安装任何东西,除了在调试下的扩展。

编辑:只是想清除一点:reshaper不会将其自身加载到实验配置单元中,尽管有一些其他扩展

伊加尔·塔巴尼克(Igal Tabachnik)

欢迎来到Visual Studio可扩展性的美好世界!

为了为任何认真的扩展开发做好准备的环境,您将需要做几件事,其中包括移动已安装的扩展以及更改Visual Studio配置文件。以下是有关此过程的简要说明:

先决条件

在继续之前,这是每个扩展开发人员都需要具备的必要“知识”:

  1. 什么是PkgDef?-有关Visual Studio软件包格式的重要信息
  2. VSIX发现-Visual Studio如何发现和加载VSIX包
  3. 自定义配置单元-运行多个Visual Studio配置文件

前两篇文章比较陈旧,但仍然包含重要信息。在Visual Studio 2012及以上,VSIX发现过程微微一变,让Visual Studio中并没有重建每次启动包缓存。要重建程序包缓存,请从提升的开发人员命令提示符运行特定版本的Visual Studio:

devenv /Setup

或使用未记录的命令:

devenv /updateconfiguration

它不需要提升,而是告诉Visual Studio在下次重新启动时刷新其程序包缓存。

在大多数情况下,默认情况下,您安装的所有扩展程序(例如ReSharper,OzCode,Gallery中的其他扩展程序)都会通过将自己放置在中按计算机自动安装%VSINSTALLDIR%\Common7\IDE\Extensions请记住,默认的pkgdef搜索路径(由定义devenv.pkgdef)为:

"PkgDefSearchPath" = $ApplicationExtensionsFolder$;$RootFolder$\Common7\IDE\CommonExtensions;$RootFolder$\Common7\IDE\devenv.admin.pkgdef;"

这意味着,无论何时在任何配置单元中启动Visual Studio,它都会首先查看每台计算机上已安装扩展的位置,然后将其加载。每当您创建新的VSIX项目时,默认设置是在/RootSuffix Exp配置单元中启动它,该配置单元仍将尝试首先加载每台计算机的扩展。

这使我得以回答您的问题。

为了防止加载扩展在其他荨麻疹,他们需要被移动到以每个蜂巢的位置:%LOCALAPPDATA%\Microsoft\VisualStudio\<vsVersion><hive>\Extensions更高版本的Visual Studio(2013及更高版本)允许您通过Visual Studio设置执行此操作,但是您需要以管理员身份运行Visual Studio才能执行此操作:

但是,除了以管理员身份运行外,还可以修改默认的软件包搜索路径,以在其中包含每个用户的位置。然后,将扩展名手动移动到该新位置。

这是您的工作:

  1. 打开提升的记事本(++)(右键单击-以管理员身份运行)
  2. 打开devenv.pkgdef位于Visual Studio安装目录中的文件,例如,C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.pkgdef
  3. 在中PkgDefSearchPath$AppDataLocalFolder$\Extensions;在第一个值之前添加$ApplicationExtensionsFolder$,所以它看起来像这样:
  4. 保存文件

现在,您可以转到该Common7\IDE\Extensions文件夹,并将这些扩展名的目录移动到每个用户的位置。因此,例如,如果您想在Visual Studio 2015中移动NCrunch,则将整个文件夹Remco Software移到%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\Extensions

最后,通过运行上述两个命令之一来刷新Visual Studio程序包缓存。当您使用Visual Studio时,它仍将加载扩展,但是每当您运行另一个配置单元(Exp或其他任何扩展)时,将不会加载这些按用户扩展。

It seems like an involved process, but you only need to do it once, and just for the "huge" extensions (mainly, ReSharper). Note that since v9, ReSharper installs itself per-hive, so you don't even have to do this anymore!

Sorry for the long explanation, hope that helps!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何告诉Visual Studio使用其他源代码目录调试到库中?

Xpath-如何选择一个包含文本但仅此而已的元素

如何告诉Visual Studio我的标头应为C ++,而不是C?

我如何告诉Visual Studio代码有关相对路径

如何告诉Visual Studio我的其他.dll文件在哪里?

如何告诉Visual Studio Online VS测试任务忽略某些nUnit测试类别

如何告诉Visual Studio 2015使用Windows 10 SDK中的最新UCRT

如何告诉从源代码编译的Visual Studio Code在哪里找到sqlite模块?

如何告诉Visual Studio将WinMerge与Git一起使用?

如何使用bash格式化手册页中的文本文件(对齐文本,仅此而已)

我如何告诉AngularJS“刷新”

“ AndroidRuntime:关闭VM”仅此而已

使用Laravel的路由功能,仅此而已

存储与用户相关的数据,仅此而已

如何在当前Visual Studio主机内部的Visual Studio扩展中调试用Roslyn编译的代码?

如何告诉bash不扩展别名

如何告诉py仅选择可取的东西?

如何告诉“ date”命令仅显示时间?

如何告诉readthedocs加载哪个需求文件?

我如何告诉Windows使用什么GPU

如何告诉 TypeScript 我的对象的类型?

WordPress如何告诉我的CSS版本

我如何告诉Maven Tomcat在哪里?

如何告诉谷歌我接受cookie python

谁能告诉我如何实现?

为什么Visual Studio告诉我我需要引用System.Private.CoreLib?

为什么Visual Studio Code中的Python repl告诉我我的对象未定义?

Visual Studio 2017 安装程序一直告诉我“需要提升”?

当Visual Studio告诉我“ xcopy已退出代码4”时出了什么问题?

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    使用AWS Cognito和React的仅限Facebook / Google的登录名(无用户名/密码)

  3. 3

    创建Windows Phone 8应用并将其连接到数据库的最佳方法(最好是SQL Server)

  4. 4

    为什么Java中的System.out.println()打印到控制台?

  5. 5

    卷曲函数无法解析来自bash中变量的代理

  6. 6

    是什么在Android的consumer-rules.pro和proguard-rules.pro之间的区别?

  7. 7

    设置与Apache POI Excel表散点图标记图标的颜色

  8. 8

    将Qt Pyside2与asyncio await语法一起使用?

  9. 9

    崇高的文字+蟒蛇的蟒蛇

  10. 10

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  11. 11

    OpenJDK的和AdoptOpenJDK的区别

  12. 12

    大型数据集缓存到Spark内存中时,“超出了GC开销限制”(通过sparklyr和RStudio)

  13. 13

    “执行测试CMAKE_HAVE_LIBC_PTHREAD”失败实际上是什么意思?

  14. 14

    使用Core 2.2中的Identity,如何在关闭浏览器15分钟后保持会话活动?

  15. 15

    React中的ForwardRefExoticComponent和ForwardRefRenderFunction有什么区别?

  16. 16

    猫鼬查找结果,然后将字段替换为findOne

  17. 17

    如何降级Google Colab的Torch版本

  18. 18

    Keras提前停止回调错误,val_loss指标不可用

  19. 19

    如何避免VSCode中的“导入路径不能以.ts扩展名结尾”错误?

  20. 20

    Nuxt.JS:如何在页面中获取路由URL参数

  21. 21

    是否有为什么会AccessibilityManager.sInstance导致内存泄漏的一个原因?

热门标签

归档