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

时间:2015-07-16 11:06:18

标签: visual-studio visual-studio-2015

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

VsHub.exe

Microsoft.VsHub.Server.HttpHost.exe

这两个都在任务管理器中占用了相当大的空间。

如何删除此“Visual Studio Hub”选项?我没有使用任何Visual Studio的“顶级”功能,包括Visual Studio Hub功能。

10 个答案:

答案 0 :(得分:127)

我想我会尝试对VS Hub以及它的目的有所了解。我为微软工作。

正如sraboy所提到的,VS Hub是一个out-of-proc服务主机,Visual Studio(以及其他基于VS shell的产品,如Blend)使用它来支持多工具通信,在devenv内更好的响应(VS ),并使某些服务延长到产卵过程的生命周期。 VS Hub中当前托管的服务集包括许多在其他答案中调出的项目,例如漫游设置,处理在诊断工具中呈现的大量ETL数据,一些遥测报告和扩展自动更新和通知。这套服务很有可能在未来增长,所以即使这些服务目前看来都不需要,将来还会在那里托管额外的服务(即通过它来禁用vshub.exe是一个相当大的锤子。重命名建议: - )。

就生命周期而言,在devenv.exe关闭后,vshub和主机进程(即Microsoft.VsHub.Server.HttpHost(64).exe)可以继续运行。但是,它们不应该无限期地继续运行。在大多数情况下,这些进程将在基于VS的shell关闭的最后一个实例的约5分钟内终止。因此,如果您有VS运行实例(devenv.exe)和Blend运行实例(blend.exe),并且关闭了devenv.exe,则vshub和关联的主机进程将继续运行。如果您随后关闭blend.exe,则vshub和关联的主机进程仍将运行。然而,在大约5分钟后,这些额外的过程将关闭。如果你在5分钟的窗口内启动另一个devenv.exe实例,那么vshub和相关的主机进程将不会终止,并且将继续运行(基本上主机进程在5分钟内没有收到任何请求时终止,之后所有主机进程终止,vshub.exe进程本身终止)。

在资源方面,vshub.exe进程本身应该总是相对轻盈。如果它变得很大,那么这就是一个bug,我很想知道它,所以我们可以解决它:-)另一方面,主机进程可能会变得非常大,具体取决于托管的服务。特别是,诊断工具通过处理ETL来工作。 ETL可能非常非常大,因此主机可能会使用大量资源。诊断团队正在研究减少这种情况的方法,但目前,在不需要时关闭诊断工具窗口应有助于缓解问题。

就在线连接而言,目前当前托管服务集中有三个主要来源(注意,这将随着时间的推移而变化)。首先,正如user3345048所提到的,检测和自动更新扩展的服务在该进程中运行。控制该通信的选项位于工具|中选项|环境|扩展和更新(请参阅前两个复选框)。其次,漫游设置作为VS Hub中的服务运行。控制此行为的设置位于工具|中选项|环境|同步设置(或者更全面地说,如果您没有登录VS右上角的个性化帐户)。最后,VS Hub会报告遥测。通过帮助|可以显着减少此数据量客户反馈选项|设置... 菜单项。您还可以阅读Microsoft收集的遥测类型以及它在该位置的使用方式。

答案 1 :(得分:81)

上面没有提到的东西......

根据我的防火墙日志,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)。

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

作为一个不需要Microsoft Azure服务器,并且合法地关注隐私并且不泄漏我正在处理外部世界的任何部分的人,我真的很喜欢A)有办法选择不运行这些程序,或B)提供设置以限制他们的在线聊天。是的,防火墙会阻止连接,但这是最后的手段。

只是一个简单的复选框,“[]联系Microsoft Azure服务器”会很好。这是否意味着不运行有问题的程序,或者只是让它们不进行在线连接对我来说不是重要的。我想从资源的角度来看,前者会更好,因为它会占用更少的资源。

作为一项规则,我不建议更改已安装的应用程序文件套件中的文件,但由于我有一个虚拟机环境,我可以在其中测试对Visual Studio 2015的更改而没有太大后果(快照很精彩),我尝试在这三个文件上更改权限(删除继承,然后禁止读取和执行用户)。

Voila,不再运行VsHub应用程序,试图联系远程系统。

Visual Studio出现了。我没有看到这里的缺点。

-Noel

答案 2 :(得分:59)

我在Visual Studio Express 2015中使用Windows 7 x64。我使用任务管理器终止了烦人的进程。然后我删除了 C:\ Program Files(x86)\ Common Files \ microsoft shared \ VsHub 文件夹。此操作可解决此问题,但需要管理员权限。

答案 3 :(得分:30)

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

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

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

答案 4 :(得分:22)

根据@ sraboy的回答,这似乎是视觉工作室的瑞士军刀。它在调试期间用于显示有关正在运行的进程的性能信息,但也可以向Microsoft发送有关您正在处理的项目的遥测。你可以在禁用它的情况下构建并逐步完成代码(乍一看)。

使用AV删除,重命名或阻止vshub进程创建将破坏我提到的性能跟踪。丢失vshub可以提高隐私性,同时使用Visual Studio 它与vortex.data.microsoft.com进行通信,传递解决方案和解决方案等信息。项目GUID以及您的帐户ID。以下是fiddler拦截HTTPS数据的屏幕截图。

阻止网络级别的访问有助于保护隐私,但它无法解决您的资源使用问题。我认为后者是运行Visual Studio的正常开销。

对于您的用例,您可能会使用某种形式的禁用(使用您的防病毒软件阻止实例化可能是最干净的方法),但它可能支持我尚未想到的其他功能。

Data communicated to Microsoft, via vshub

答案 5 :(得分:8)

对于那些想要保留VSHub且仍能使用Fiddler的人,可以使用以下设置在Fiddler中设置过滤器:

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

编辑 - 您可能也想添加它:

Hosts > Show only the following Hosts: =
localhost;

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

vshub filter in Fiddler

答案 6 :(得分:4)

根据Microsoft程序经理评论Visual Studio博客commenting on the Visual Studio Blog,它用于支持VS套件中的多工具通信。鉴于Visual Studio的复杂程度,我不建议像xakepp35的答案那样苛刻(删除它)。

在运行VS2015的Win10 x64上,在调试时,有三个进程,总RAM使用量总计小于150MB。除非你在具有最小RAM的机器上进行页面抖动,否则不必担心。鉴于你正在运行VS2015,我猜你有150MB备用。

除非您发现文档明确显示Hub支持的内容,否则我建议您将其保留。根据我的经验,Visual Studio安装很容易破解。

答案 7 :(得分:3)

Visual Studio尝试在线连接的原因之一似乎是,默认情况下,在线搜索Visual Studio及其扩展的更新。

此外,Visual Studio在其核心中包含一个版本的Internet Explorer,以便可以实时下载网页(和扩展名)。换句话说,它也充当了浏览器,我们都知道......微软非常热衷于检查用户的数据和软件的使用情况。

菜单工具选项中有很多在线功能。 (说实话,我确实更喜欢MonoDevelop,即使有它的缺陷。)

答案 8 :(得分:2)

BrowserLink,Diagnostics窗口,Intellitrace需要它。

我有时需要这些功能,但只有8 GB的RAM。我的使用率通常为90-95%,因此我创建了一个批处理文件,通过重命名文件夹并创建符号链接到具有虚拟文件的空文件夹来打开和关闭VSHub。

在运行之前关闭Visual 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。 2小时后250-350 MB
  • Microsoft.VsHub.Server.HttpHost.exe:最初为200 MB。 1小时后350 + MB
  • Microsoft.VsHub.Server.HttpHostx64.exe:最初为320 MB。 1小时后550 + MB

这可以释放超过1 GB的RAM,几乎不会丢失任何功能。

答案 9 :(得分:0)

" VsHub"应该重命名为" SmartMobileCloud&#34 ;; 这是多么愚蠢的时尚。我抛弃了它; 我的VisualC编辑/调试没有受到伤害。

安装VisualStudio后,删除未使用的扩展,执行 " C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ - Deleted - VsHub" 修复...然后放一个" VsHub"那里的文本文件(没有" .TXT"), 所以没有什么可以重新创建文件夹。