12

Task Runner Explorer 只是在 Visual Studio 2015 RC 中为我抛出错误,我只想禁用它并像往常一样从命令行运行我的 gulp 文件。有没有办法关闭 Task Runner Explorer?

4

6 回答 6

13

毕竟,我能够以干净且微创的方式解决禁用任何不必要的 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!康斯坦丁

于 2016-01-20T16:50:13.100 回答
8

在 Visual Studio 2015 中,您可以阻止 Gulp 在每次构建时运行。

  • 打开任务运行器资源管理器
  • 单击“绑定”选项卡(如下所示)
  • 选择树中的任何条目并按Delete

完成后,绑定树应如图所示,每个顶级项目后都有零。

在此处输入图像描述


请注意,通过 UI 进行上述更改最终会从gulpfile.js自身中删除项目,因此您可以通过删除任何类似内容来轻松进行此更改:

/// <binding AfterBuild='default' />
/// <binding Clean='clean' />
于 2017-02-03T21:10:57.840 回答
3

底部的链接解释了如何禁用 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/

http://blog.spinthemoose.com/2013/01/02/the-correct-way-to-uninstall-visual-studio-packages-extensions/

于 2015-10-15T00:20:53.150 回答
2

每当我打开我们的网站解决方案时,我一直在使用 Visual Studio 2015node.exe一次又一次地启动无数个 . 这导致他们安装在我们开发盒上的 McAfee nannyware 和戴尔加密软件发疯了。

在这一切之间,它几乎消耗了整个 CPU。不用说,这让事情变得……难以……完成任务。

所以,我开始思考事情,我想如果我能去掉node,npmgulp二进制文件,它们至少不会消耗任何 CPU。所以,我写了可以想象的最简单的存根控制台应用程序。我自己的版本

  • node.exe
  • gulp.exe
  • npm.exe
  • 和一个npm.cmd简单地运行 my npm.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/

享受。

于 2016-02-11T23:07:28.183 回答
-1

这不是“在 Visual Studio 中”,但您可以打开 gulpfile.js 并删除文件顶部生成的行。之后您可能还需要重新加载您的解决方案,我不确定。

我也来到这里寻找答案,只是注意到我的 gulpfile.js 中有一个新行。我查找了它何时开始,结果发现当我将 Azure SDK 升级到 2.7 并开始使用 Visual Studio 2015 RTM 时,它在我的 gulpfile 中注入了这一行。

如果有人确实找到了通过 Visual Studio 执行此操作的方法,而不是破解文件中生成的行,我也想知道。

于 2015-07-29T16:42:52.073 回答
-2

打开 Task Runner 窗格并禁用所有“On Build”操作。

于 2015-06-25T19:07:36.663 回答