如何在Visual Studio中禁用Task Runner Explorer?

时间:2015-06-24 20:25:10

标签: gulp visual-studio-2015 task-runner-explorer

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

6 个答案:

答案 0 :(得分:11)

毕竟我能够以干净和微创的方式解决禁用任何不必要的Visual Studio包的问题,​​这不需要更改VS配置文件或摆弄注册表!这包括任务运行器工具,VsHub工具,它导致很多VS不稳定和减速,以及其附带的150+以外的任何其他VS包。

这是一个简短的回顾: VS的基本功能组件是一个包(不要与NuGet包混用 - 这些与这里不相关)。 您可以从Web安装的所有扩展(以及许多预安装的扩展)都采用扩展包格式的VSIX形式。 Visual Studio有一个API(未发布但仍然可以),它可以与VSIX包一起使用,包括查找它们和启用/禁用它们。不幸的是它只能处理VSIX并且看不到纯VS包。这是通过设计声明的 - 纯VS包被认为是系统组件,并且没有支持的方法来禁用它们。或者他们说...... 我已经反编译官方(虽然已经过时)用于扩展诊断的MS插件,并发现它直接使用注册表来获取有关已安装的VSPackage的信息,但是甚至没有尝试更改任何内容(想想禁用)。 我自己对HKCU \ Software \ Microsoft \ VisualStudio的调查发现,庞大而复杂的数据结构没有用处,因为它只是VS内部状态的缓存,VS随机和经常刷新,所以即使我们弄清楚如何禁用通过注册表包这将是毫无意义的,因为VS会立即覆盖它。

最终将我带到最终解决方案的两条线索是: 1.有一个文件C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.pkgdef该文件的内容不是特别有趣,但我的C ++过去给了我一个提示,如果有PkgDef ,即使通常没有PkgUnDef,也很有可能存在PkgUnDef。 ProcMon确认在启动VS期间检查devenv.pkgundef文件存在并且我在正确的路径上。 2.第二个提示 - 我知道其他一些产品(想想SQL Server Management Studio)伪装使用VS Shell(这就是你在Add \ Remove程序中仍然看到VS 2010的原因 - 它是SQL SMS)。而那些其他产品显然有办法削减大部分VS功能,只留下他们真正需要的一些功能。所以我学会了他们是如何做到的,在这里你再去 - pkgundef文件!

这是几个探针和注册表扫描的问题,为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 Analyser。这是相当过时的,所以我将一个与VS 2015 here一起使用的版本混在一起。

另一种查看减慢VS速度的方法是使用/ Log参数运行它并应用Activity Log Proviler

希望它能帮助人们重新获得纤薄而快速的Visual Studio! 康斯坦丁

答案 1 :(得分:2)

底部的链接说明了如何禁用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目录。
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\Packages\内的注册表备份并删除GUID密钥。目前,这些密钥为{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/

答案 2 :(得分:2)

每当我打开我们的网站解决方案时,我一直在使用Visual Studio 2015来解决大量node.exe的实例问题,一遍又一遍。这导致他们在开发盒上安装的McAfee保密软件和戴尔加密软件变得疯狂。

在这一切之间,它几乎消耗了整个CPU。毋庸置疑,这使......难以......完成任务。

所以,我开始考虑事情了,我想如果我可以删除nodenpmgulp二进制文件,那么它们至少不会能够消耗任何CPU。所以,我写了关于可以想象的最简单的存根控制台应用程序。

我自己的版本
  • node.exe
  • gulp.exe
  • npm.exe
  • npm.cmd只是简单地运行我的npm.exe,将命令行参数传递得很长。

这些可执行文件中唯一做的就是使用log4net并在日志文件中写一行,使用可执行文件的名称并列出调用可执行文件的参数。我将其中的4个单独停放在一个目录中并使用了这篇文章

将Visual Studio 2015配置为将我的存根可执行文件放在搜索路径的顶部。

好......

可见,Visual Studio 2015一再调用npm,如下所示:

npm ls -g

所以我去了项目的根目录并运行相同的命令(使用真正的二进制文件)。瞧,npm投掷并报告错误,试图打开位于

树下的不存在的package.json
C:\Users\{user-id}\AppData\Roaming\npm\node_modules

从某个时间开始,它看起来是残留的,留下了空目录。一旦我删除了试图打开一个不存在的package.json的空目录,生活就会很好。

注意:有人通过评论请求我在此描述的存根可执行文件。您可以在https://github.com/nbcarey/vs2015-node-stubs/

的Github中找到它们的源代码

享受。

答案 3 :(得分:2)

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

  • 打开 Task Runner Explorer
  • 点击 Bindings 标签(如下所示)
  • 选择树中的任何条目,然后按删除

完成后,绑定树应该看起来如每个顶级项目后的零所示。

enter image description here

请注意,通过用户界面进行上述更改最终会从gulpfile.js本身删除项目,因此您可以通过删除类似的内容轻松进行此更改:

/// <binding AfterBuild='default' />
/// <binding Clean='clean' />

答案 4 :(得分:-1)

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

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

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

答案 5 :(得分:-2)

Open the Task Runner pane and disable all "On Build" actions.