如何禁用系统托盘中的VsHub.exe?

启动Visual Studio 2015还会启动另外两个可执行文件:

VsHub.exe

Microsoft.VsHub.Server.HttpHost.exe

这两者在任务pipe理器中占用相当大的空间。

我怎样才能删除这个“Visual Studio Hub”选项? 我不使用VS的一streamfunction,包括VS Hub。

我想我会试图阐明一下VS Hub以及它的目标。 我为微软工作。

正如sraboy提到的,VS Hub是一个超级服务主机,Visual Studio(以及Blend等基于VSshell的产品)用于支持多工具通信,devenv(VS)内更好的响应能力,以及使某些服务延伸到产卵过程的生命周期。 VS集线器当前托pipe的一组服务包括许多其他答案中提到的项目,例如漫游设置,处理在诊断工具中呈现的大量ETL数据,某些遥测报告和扩展自动更新和通知。 这套服务在未来很可能会增长,所以即使这些服务目前都不是必要的,将来会有更多的服务托pipe在这里(例如,通过禁用vshub.exe直到重命名推荐:-)。

在生命周期方面,vven和主机进程(即Microsoft.VsHub.Server.HttpHost(64).exe)可以在devenv.execlosures后继续运行。 但是,他们不应该一直运行下去。 在大多数情况下,这些进程将在基于VS的shellclosures的最后一个实例的〜5分钟内终止。 所以如果你有一个VS运行的实例(devenv.exe)和一个Blend运行实例(blend.exe),并且closures了devenv.exe,vshub和相关的主机进程将继续运行。 如果您然后closuresblend.exe,vshub和相关的主机进程将仍然在运行。 然而,大约5分钟后,这些额外的过程将closures。 如果在5分钟的时间内启动另一个devenv.exe实例,那么vshub和关联的主机进程将不会终止,并且将继续运行(基本上主机进程会在5分钟内没有收到任何请求时终止,所有主机进程终止,vshub.exe进程本身终止)。

资源方面,vshub.exe进程本身应该总是相对轻松。 如果它变得很大,那么这是一个错误,我很想知道它,所以我们可以修复它:-)另一方面,主机进程可能会变得非常大,取决于所托pipe的服务。 特别是,诊断工具通过处理ETL来工作。 ETL可能非常非常大,因此主机可能会占用大量资源。 诊断小组正在寻找减less这种情况的方法,但是现在,在不需要的时候closures诊断工具窗口应该有助于缓解这个问题。

就在线连接而言,目前托pipe服务中有三个主要来源(注意,这将随着时间而改变)。 首先,如用户3345048所提到的那样,检测和自动更新扩展的服务在该过程中运行。 控制该通信的选项在Tools |中 选项| 环境| 扩展和更新 (请参阅前两个checkbox)。 其次,漫游设置在VS Hub中作为服务运行。 控制此行为的设置位于Tools |中 选项| 环境| 同步设置 (或者更全面地说,如果您没有loginVS右上angular的个性化帐户)。 最后,VS Hub报告遥测。 通过Help |可以显着减less这些数据量 客户反馈选项| 设置…菜单项。 您还可以阅读有关Microsoft收集的遥测types及其在该位置的使用方式。

没有人提到上面的东西…

根据我的防火墙日志,VsHub.exe,Microsoft.VsHub.Server.HttpHost.exe和Microsoft.VsHub.Server.HttpHostx64.exe都尝试在线通信。

我看到有传出连接尝试的地址包括191.236.194.164(Microsoft Azure,Wichita Kansas)和23.102.160.172(Microsoft Azure,Redmond Washington)。

我意识到“现代”软件应该是云集成,但…

作为一个谁不需要从微软Azure服务器的任何东西,谁是合法的关注隐私,没有泄漏我正在对外部世界的任何部分,我真的很喜欢A)有办法select不运行这些程序,或B)提供设置,以限制他们的在线聊天。 是的,防火墙阻止连接,但这是最后的手段。

只是一个简单的checkbox,“[]联系微软Azure服务器”将是很好的。 这是否意味着不运行有问题的程序,或者是否让他们不能进行在线连接对我来说并不重要。 我认为从资源的angular度来看,前者会更好,因为它会使用更less的资源。

作为一个规则,我不会build议更改已安装的应用程序的文件套件中的文件,但由于我有一个虚拟机环境,我可以在其中testing对Visual Studio 2015的更改没有太多的后果(快照是美好的),我试图改变这三个文件的权限(删除inheritance,然后禁止读取和执行用户)。

瞧,没有更多的VsHub应用程序正在运行,试图联系远程系统。

Visual Studio来了。 我在这里看不到一个缺点。

-Noel

我正在使用Windows 7 x64与VS Express 2015.我已经终止与任务pipe理器恼人的进程。 然后我删除了c:\ Program Files(x86)\ Common Files \ microsoft shared \ VsHub文件夹。 此操作解决了此问题,但需要pipe理员权限。

正如xakepp35提到的,您可以删除C:\ Program Files(x86)\ Common Files \ microsoft shared \ VsHub文件夹。 但是,我怀疑更新或其他安装程序可能会尝试重新创build它。

我所做的就是closures所有的VS进程。 取得该文件夹的所有权(作为pipe理员),然后RAR(邮编)上的文件夹,最后删除它(RAR作为备份,如果我需要的文件回来)。 我在SSD上,所以我想节省空间。 否则,你可以简单地重命名它,并保持原位。

然后为了防止它被再次创build,我使用了一个旧的Win 3.1技巧。 在C:\ Program Files(x86)\ Common Files \ microsoft共享文件夹中创build一个名为VsHub.txt的文本文件。 然后重命名文本文件并取下.txt扩展名,留下一个名为VsHub的文件。 由于操作系统无法在同一位置创build一个相同名称的文件夹和文件,因此无法将其作为VS文件夹以及其不可访问的和将来的安装程序/更新程序作为文件夹访问。 然后,如果您将来需要再次访问,只需在文件中添加.txt文件即可。

根据@sraboy的回答,这似乎是视觉工作室的沟通瑞士军刀。 它在debugging过程中用于显示有关正在运行的进程的性能信息,还可以将有关正在进行的项目的遥测信息发送到Microsoft。 您可以使用禁用的代码(乍一看)来构build并逐步完成代码。

使用AV删除,重命名或阻止vshub进程创build将打破我提到的性能跟踪。 丢失vshub可提高隐私性,同时使用visual studio 与vortex.data.microsoft.com进行通信,将解决scheme和项目指导等信息与您的账户ID一起传递。 下面是截取了来自fiddler拦截HTTPS数据的截图。

在networking级别阻止访问有助于保护隐私,但不会解决资源使用问题。 我认为后者是运行Visual Studio的正常开销。
对于您的使用情况,您可能会失去某种forms的禁用(阻止实例化与您的反病毒可能是最干净的方法),但它可能支持额外的function,我还没有想出。

数据通过vshub传达给微软

对于那些想要保存VSHub并仍然可以使用Fiddler的人,可以使用以下设置在Fiddler中设置Filter:

Request Headers > Hide if URL contains = REGEX:localhost:\d+\/vshub\/ 

编辑 – 你可能也想添加这个:

 Hosts > Show only the following Hosts: = localhost; 

为了省略vortex.data.microsoft.com等请求

在提琴手的vshub过滤器

根据一位微软程序经理评论Visual Studio博客评论Visual Studio Blog ,它用于支持跨VS套件的多工具通信。 鉴于Visual Studio是多么复杂,我不会推荐像xakepp35的答案那样苛刻(删除它)。

在运行VS2015的Win10 x64上,在debugging的时候,有三个进程,总的RAM使用量总共不到150MB。 除非你在一台没有太多需要关心的内存的机器上翻页。 鉴于你正在运行VS2015,我猜你有150MB空余。

直到或除非你find文件明确显示Hub支持什么,我build议保持它。 根据我的经验,Visual Studio安装非常容易中断。

VS尝试在线连接的一个原因似乎也是,默认情况下,在线searchVS及其扩展的更新。 此外,Visual Studio在其核心中包含一个Internet Explorer版本,以便网页(和扩展)可以实时下载。 换句话说,它也起着浏览器的作用,我们都知道…微软非常希望检查用户的数据和软件的使用情况。

在工具/选项中有很多在线function。 (说实话,我更喜欢Monodevelop即使有缺陷)

BrowserLink,诊断窗口,Intellitrace都需要它。 我有时需要这些function,但只有8GB的RAM。 我通常在90-95%的使用率,所以我创build了一个batch file,通过重命名文件夹和创build一个符号链接到虚拟文件的空文件夹来打开和closuresVSHub。

运行之前closuresVisual Studio。

 @echo off goto CheckVsHubRunning :KillVsHub echo Killing VsHub Process taskkill /IM VsHub.exe /T /F TIMEOUT /T 3 /NOBREAK :CheckVsHubRunning ver > nul tasklist /FI "IMAGENAME eq VsHub.exe" | find /I /N "VsHub.exe" if "%ERRORLEVEL%"=="0" goto KillVsHub if "%ERRORLEVEL%"=="1" echo VsHub is not running. echo. PUSHD "C:\Program Files (x86)\Common Files\microsoft shared" IF NOT EXIST "VsHub.original" ( echo Renaming Original VsHub folder. RENAME "VsHub" "VsHub.original" ) IF NOT EXIST "VsHub.dummy" ( echo Creating Dummy Folder and Contents mkdir "VsHub.dummy" copy NUL > "VsHub.dummy\1.0.0.0" copy NUL > "VsHub.dummy\ServiceModules" mkdir "VsHub.dummy\dummy" ) IF EXIST "VsHub\dummy" ( echo ENABLING VsHub echo. rmdir VsHub mklink /d VsHub VsHub.original ) ELSE ( echo DISABLING VsHub echo. rmdir VsHub mklink /d VsHub VsHub.dummy ) echo. pause 

在我的机器VSHub和它的密友通常使用:

  • VsHub.exe:最初50 MB。 250小时后250-350MB
  • Microsoft.VsHub.Server.HttpHost.exe:最初为200 MB。 1小时后350 + MB
  • Microsoft.VsHub.Server.HttpHostx64.exe:最初为320 MB。 1小时后550 + MB

这释放了1GB的RAM,几乎没有任何function丢失。

“VsHub”应该改名为“SmartMobileCloud”; 这是多么愚蠢的趋势。 我甩了它; 我的VisualC编辑/debugging没有受到伤害。

安装VisualStudio后,删除未使用的扩展名,执行“C:\ Program Files文件(x86)\ Common Files \ Microsoft Shared \ – 删除 – VsHub”修复…并在其中放置一个“VsHub”文本文件(没有“.TXT” ),所以没有什么可以重新创build文件夹。