Task Runner Explorer 只是在 Visual Studio 2015 RC 中为我抛出错误,我只想禁用它并像往常一样从命令行运行我的 gulp 文件。有没有办法关闭 Task Runner Explorer?
6 回答
毕竟,我能够以干净且微创的方式解决禁用任何不必要的 Visual Studio 包的问题,这不需要更改 VS 配置文件或摆弄注册表!这包括 Task Runner 工具、导致大量 VS 不稳定和减速的 VsHub 工具以及它附带的 150 多个 VS 包中的任何其他 VS 包。
这里有一个简短的回顾:VS 的基本功能组件是一个包(不要将它与 NuGet 包混为一谈——这些与这里无关)。您可以从 Web 安装的所有扩展(以及许多预安装的)都采用 VSIX 的形式,它是扩展包格式。Visual Studio 有一个 API(未发布,但仍然),它可以与 VSIX 包一起使用,包括查找它们和启用/禁用它们。不幸的是,它只能处理 VSIX 并且看不到纯 VS 包。这是设计声明的——纯 VS 包被认为是系统组件,没有支持的方式来禁用它们。或者他们说……我已经反编译了用于扩展诊断的官方(虽然严重过时)MS插件,发现它直接与注册表进行了大量摆弄以获取有关已安装的VSPackages的信息,但甚至不尝试改变那里的任何东西(想想禁用)。我自己对 HKCU\Software\Microsoft\VisualStudio 的调查发现,那里庞大而复杂的数据结构是无用的,因为它只是 VS 随机且经常刷新的 VS 内部状态的缓存,所以即使我们弄清楚如何禁用通过注册表打包它是没有意义的,因为 VS 会立即覆盖它。
最终让我找到最终解决方案的两条线索是: 1. 有一个文件 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.pkgdef 该文件的内容不是特别有趣,但是我的 C++ 过去给了我一个提示,如果有 PkgDef,那么很有可能也有 PkgUnDef,即使它通常不存在。ProcMon 确认在启动期间 VS 检查 devenv.pkgundef 文件是否存在,并且我在正确的路径上。2. 第二个提示——我知道其他一些产品(想想 SQL Server Management Studio)变相使用 VS Shell(这就是为什么你仍然在 Add\Remove 程序中看到 VS 2010——它是 SQL SMS)。而那些其他产品显然有办法删除大部分 VS 功能,只留下他们真正需要的一些功能。
只需进行几次探测和注册表扫描即可为 devenv.PkgUnDef 写入正确的内容,以摆脱我不喜欢的软件包,而不会产生明显的副作用或不良后果。
我的 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.pkgundef 看起来像这样:
// Exclude TaskRunnerExplorer
[$RootKey$\Packages\{b483c4e7-43a6-4f7b-a9a1-79e2c5d12148}]
// Exclude VsHubServicePackage
[$RootKey$\Packages\{F419E6BB-F72F-42CF-ACFE-D0D0E17FCB17}]
// Exclude JavaScriptWebExtensionsPackage
[$RootKey$\Packages\{30db8f9b-ec9f-44d6-b377-83c7c27a1a8b}]
要检查您已加载的特定软件包,请使用Extension Analyzer。它已经过时了,所以我在这里拼凑了一个与 VS 2015 一起使用的版本。
另一种查看 VS 变慢的方法是使用 /Log 参数运行它并应用Activity Log Proviler。
希望它可以帮助人们重新获得苗条和快速的 Visual Studio!康斯坦丁
底部的链接解释了如何禁用 Visual Studio 中内置的包(扩展)。
基本上:
- 导航到
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools
。 - 备份
extension.vsixmanifest
文件和TaskRunnerExplorer
目录。 - 查看
TaskRunnerExplorer\*.pkg
文件并记下文件顶部的 GUID 键(例如[$RootKey$\Packages\{b483c4e7-43a6-4f7b-a9a1-79e2c5d12148}]
)。 - 编辑
extension.vsixmanifest
文件并删除任何提及 TaskRunnerExplorer。 - 删除
TaskRunnerExplorer
目录。 - 从注册表中备份和删除 GUID 键,在
HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\Packages\
. 目前,这些键是{8da206d4-9521-4f38-92c9-a8d5d0af611c}
和{b483c4e7-43a6-4f7b-a9a1-79e2c5d12148}
。
注意:要编辑 中的文件Program Files (x86)
,您必须在管理员模式下运行记事本应用程序,或者从您拥有的目录中编辑副本,然后覆盖原始文件。
http://blog.spinthemoose.com/2012/12/28/how-to-unregister-a-visual-studio-package-extension/
每当我打开我们的网站解决方案时,我一直在使用 Visual Studio 2015node.exe
一次又一次地启动无数个 . 这导致他们安装在我们开发盒上的 McAfee nannyware 和戴尔加密软件发疯了。
在这一切之间,它几乎消耗了整个 CPU。不用说,这让事情变得……难以……完成任务。
所以,我开始思考事情,我想如果我能去掉node
,npm
和gulp
二进制文件,它们至少不会消耗任何 CPU。所以,我写了可以想象的最简单的存根控制台应用程序。我自己的版本
node.exe
gulp.exe
npm.exe
- 和一个
npm.cmd
简单地运行 mynpm.exe
,并长时间传递其命令行参数。
这些可执行文件中唯一要做的就是使用log4net
并将一行写入日志文件,其中包含可执行文件的名称并列出调用可执行文件的参数。我将其中的 4 个单独存放在一个目录中,并使用使用Visual Studio 同步 Node.JS 安装版本来配置 Visual Studio 2015 以将我的存根可执行文件放在搜索路径的顶部。
出色地 ...
事实证明,Visual Studio 2015 反复调用npm
如下:
npm ls -g
所以我去了我们项目的根目录并运行了相同的命令(使用真正的二进制文件)。瞧,npm
正在投掷并报告错误,试图打开一个不存在的package.json
位于树根的树
C:\Users\{user-id}\AppData\Roaming\npm\node_modules
它看起来像是一段时间前遗留下来的空目录。一旦我删除了它试图打开一个不存在的空目录package.json
,生活就很好。
注意:有人通过评论请求了我在此处描述的存根可执行文件。你可以在 Github 中找到它们的源代码https://github.com/nbcarey/vs2015-node-stubs/
享受。
这不是“在 Visual Studio 中”,但您可以打开 gulpfile.js 并删除文件顶部生成的行。之后您可能还需要重新加载您的解决方案,我不确定。
我也来到这里寻找答案,只是注意到我的 gulpfile.js 中有一个新行。我查找了它何时开始,结果发现当我将 Azure SDK 升级到 2.7 并开始使用 Visual Studio 2015 RTM 时,它在我的 gulpfile 中注入了这一行。
如果有人确实找到了通过 Visual Studio 执行此操作的方法,而不是破解文件中生成的行,我也想知道。
打开 Task Runner 窗格并禁用所有“On Build”操作。