如何告诉 Visual Studio 只加载我当前正在调试的扩展(仅此而已)?
How to tell Visual Studio to load only the extension I'm currently debugging (and nothing more)?
我读过How to debug Visual Studio extensions。
事实上,VS2013 会为此自动设置扩展项目。
我有很多扩展(还有附加组件等等:Resharper、OzCode、GitExtensions..)。显然,它们的加载时间都很慢。
有没有办法在 "clean" Visual Studio 上 运行 扩展调试会话?只是香草:除了调试下的扩展之外没有安装任何东西。
编辑:只是想澄清一点:resharper 没有在实验性配置单元中加载自身,但是一些其他扩展是
欢迎来到Visual Studio可扩展性的精彩世界!
为了为任何严肃的扩展开发准备好环境,您需要做几件事,包括移动已安装的扩展和更改 Visual Studio 配置文件。下面简单介绍一下流程:
先决条件
在继续之前,这是每个扩展开发人员需要具备的 "knowledge" 必要条件:
- What's a PkgDef? - 关于 Visual Studio 包格式的重要信息
- VSIX discovery - Visual Studio 如何发现和加载 VSIX 包
- Custom hives - 运行宁多个 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 作为管理员才能工作:
但是,不用 运行ning 作为管理员,可以修改默认包搜索路径,以在其中包含每个用户的位置。然后,手动将扩展程序移动到新位置。
这是你要做的:
- 打开提升权限的记事本(++)(右键单击 - 运行 以管理员身份)
- 打开文件
devenv.pkgdef
,位于Visual Studio安装目录,例如`C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.pkgdef
- 在
PkgDefSearchPath
中,添加$AppDataLocalFolder$\Extensions;
作为第一个值,在$ApplicationExtensionsFolder$
之前,所以它看起来像这样:
- 保存文件
现在您可以转到 Common7\IDE\Extensions
文件夹,然后将这些扩展的目录 移动到每个用户的位置。例如,如果您想在 Visual Studio 2015 中移动 NC运行ch,请将整个文件夹 Remco Software
移动到 %LOCALAPPDATA%\Microsoft\VisualStudio.0\Extensions
.
最后,通过 运行 上面两个命令之一刷新 Visual Studio 程序包缓存。当您 Visual Studio 时,它仍会加载扩展,但每当您 运行 另一个配置单元(Exp 或任何其他)时,将不会加载那些每个用户的扩展。
这似乎是一个复杂的过程,但您只需要做一次,而且只针对 "huge" 扩展(主要是 ReSharper)。请注意,从 v9 开始,ReSharper 会在每个配置单元中自行安装,因此您甚至不必再这样做!
抱歉解释冗长,希望对您有所帮助!
我觉得的回答对你有帮助。 “运行 Visual studio 与自定义 Hive 中的包(不是 Exp)”
我读过How to debug Visual Studio extensions。
事实上,VS2013 会为此自动设置扩展项目。
我有很多扩展(还有附加组件等等:Resharper、OzCode、GitExtensions..)。显然,它们的加载时间都很慢。
有没有办法在 "clean" Visual Studio 上 运行 扩展调试会话?只是香草:除了调试下的扩展之外没有安装任何东西。
编辑:只是想澄清一点:resharper 没有在实验性配置单元中加载自身,但是一些其他扩展是
欢迎来到Visual Studio可扩展性的精彩世界!
为了为任何严肃的扩展开发准备好环境,您需要做几件事,包括移动已安装的扩展和更改 Visual Studio 配置文件。下面简单介绍一下流程:
先决条件
在继续之前,这是每个扩展开发人员需要具备的 "knowledge" 必要条件:
- What's a PkgDef? - 关于 Visual Studio 包格式的重要信息
- VSIX discovery - Visual Studio 如何发现和加载 VSIX 包
- Custom hives - 运行宁多个 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 作为管理员才能工作:
但是,不用 运行ning 作为管理员,可以修改默认包搜索路径,以在其中包含每个用户的位置。然后,手动将扩展程序移动到新位置。
这是你要做的:
- 打开提升权限的记事本(++)(右键单击 - 运行 以管理员身份)
- 打开文件
devenv.pkgdef
,位于Visual Studio安装目录,例如`C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.pkgdef - 在
PkgDefSearchPath
中,添加$AppDataLocalFolder$\Extensions;
作为第一个值,在$ApplicationExtensionsFolder$
之前,所以它看起来像这样: - 保存文件
现在您可以转到 Common7\IDE\Extensions
文件夹,然后将这些扩展的目录 移动到每个用户的位置。例如,如果您想在 Visual Studio 2015 中移动 NC运行ch,请将整个文件夹 Remco Software
移动到 %LOCALAPPDATA%\Microsoft\VisualStudio.0\Extensions
.
最后,通过 运行 上面两个命令之一刷新 Visual Studio 程序包缓存。当您 Visual Studio 时,它仍会加载扩展,但每当您 运行 另一个配置单元(Exp 或任何其他)时,将不会加载那些每个用户的扩展。
这似乎是一个复杂的过程,但您只需要做一次,而且只针对 "huge" 扩展(主要是 ReSharper)。请注意,从 v9 开始,ReSharper 会在每个配置单元中自行安装,因此您甚至不必再这样做!
抱歉解释冗长,希望对您有所帮助!
我觉得