Debugging 如何告诉Visual Studio仅加载扩展I';我目前正在调试(仅此而已)?

Debugging 如何告诉Visual Studio仅加载扩展I';我目前正在调试(仅此而已)?,debugging,visual-studio-2013,vsix,Debugging,Visual Studio 2013,Vsix,我读过 事实上,VS2013为此自动设置了扩展项目 我有很多扩展(还有附加组件等:Resharper、OzCode、GitExtensions..)。显然,它们的加载时间都很慢 有没有办法在“干净”的VisualStudio上运行扩展调试会话?只是普通的:除了调试下的扩展,没有安装任何东西 编辑:只是想澄清一点:resharper并没有在实验配置单元中加载自己,其他一些扩展也在加载中,不过欢迎来到VisualStudio扩展性的奇妙世界 为了使您的环境为任何重要的扩展开发做好准备,您需要做几件事

我读过

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

我有很多扩展(还有附加组件等:Resharper、OzCode、GitExtensions..)。显然,它们的加载时间都很慢

有没有办法在“干净”的VisualStudio上运行扩展调试会话?只是普通的:除了调试下的扩展,没有安装任何东西


编辑:只是想澄清一点:resharper并没有在实验配置单元中加载自己,其他一些扩展也在加载中,不过欢迎来到VisualStudio扩展性的奇妙世界

为了使您的环境为任何重要的扩展开发做好准备,您需要做几件事,包括移动已安装的扩展以及更改VisualStudio配置文件。以下是有关该过程的简要说明:

先决条件 在继续之前,以下是每个扩展开发人员需要具备的必要“知识”:

  • -有关Visual Studio软件包格式的重要信息
  • -Visual Studio如何发现和加载VSIX包
  • -运行多个Visual Studio配置文件
  • 前两篇文章相当古老,但它们仍然保留着重要的信息。在Visual Studio 2012及更高版本中,VSIX发现过程略有更改,因此Visual Studio不会在每次启动时重建包缓存。要重建包缓存,请从特定版本Visual Studio的提升开发人员命令提示符运行:

    devenv /Setup
    
    或者使用未记录的命令:

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

    大多数情况下,您安装的所有扩展(例如ReSharper、OzCode、Gallery中的其他扩展)默认情况下都会在每台机器上安装,方法是将它们放在
    %VSINSTALLDIR%\Common7\IDE\extensions
    中。请记住,默认的pkgdef搜索路径(由
    devenv.pkgdef
    定义)是:

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

    这让我来回答你的问题

    为了防止扩展加载到其他配置单元中,需要将它们移动到每个配置单元的位置:
    %LOCALAPPDATA%\Microsoft\VisualStudio\\extensions
    。Visual Studio的更高版本(2013及更高版本)允许您从Visual Studio设置执行此操作,但您需要以管理员身份运行Visual Studio才能执行此操作:

    但是,可以修改默认的包搜索路径,以包含每个用户的位置,而不是以管理员身份运行。然后,手动将扩展移动到该新位置

    以下是您要做的:

  • 打开提升的记事本(++)(右键单击-以管理员身份运行)
  • 打开位于Visual Studio安装目录中的文件
    devenv.pkgdef
    ,例如`C:\Program Files(x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.pkgdef
  • PkgDefSearchPath
    中,添加
    $AppDataLocalFolder$\Extensions
    作为第一个值,位于
    $ApplicationExtensionsFolder$
    之前,因此看起来如下所示:
  • 保存文件
  • 现在,您可以转到
    Common7\IDE\Extensions
    文件夹,将这些扩展的目录移动到每个用户的位置。例如,如果您想在Visual Studio 2015中移动NCrunch,请将整个文件夹
    Remco Software
    ,并将其移动到
    %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\Extensions

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

    这似乎是一个复杂的过程,但您只需要做一次,而且只需要“巨大”的扩展(主要是ReSharper)。请注意,自v9以来,ReSharper在每个蜂巢中安装自己,所以您甚至不必再这样做了


    对不起,解释得太长了,希望能有所帮助

    我想这个答案可以帮助你。“在自定义配置单元(非Exp)中运行Visual studio vs软件包”

    您使用的是实验实例吗@是的。正如我在问题的第一行中所说的,我已经读过(显然,我也使用过)。正如第二行所述,在vs2013中只需按下
    F5
    即可使用它的see:Jeez。这可以解释我一直面临的红眼白眼问题,因为它一直在阅读旧的扩展,而我看不到自己的变化。似乎扩展开发还不足以从一开始就搞清楚。:)现在我必须做各种各样的跳环和配置,以使它在2019年起作用。微软做得很好。伟大的作品,曾经是我们之间的爱情故事:)
    devenv /updateconfiguration
    
    "PkgDefSearchPath" = $ApplicationExtensionsFolder$;$RootFolder$\Common7\IDE\CommonExtensions;$RootFolder$\Common7\IDE\devenv.admin.pkgdef;"