Task Runner Explorer在Visual Studio 2015 RC中为我抛出错误,我只是想禁用它并像我一样从命令行运行gulp文件。有没有办法关闭Task Runner Explorer?
答案 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/
答案 2 :(得分:2)
每当我打开我们的网站解决方案时,我一直在使用Visual Studio 2015来解决大量node.exe
的实例问题,一遍又一遍。这导致他们在开发盒上安装的McAfee保密软件和戴尔加密软件变得疯狂。
在这一切之间,它几乎消耗了整个CPU。毋庸置疑,这使......难以......完成任务。
所以,我开始考虑事情了,我想如果我可以删除node
,npm
和gulp
二进制文件,那么它们至少不会能够消耗任何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在每次构建时运行。
完成后,绑定树应该看起来如每个顶级项目后的零所示。
请注意,通过用户界面进行上述更改最终会从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)