如何修复 VS 2015 中的“内部诊断中心异常" - 缺少 DiagnosticsHub.CpuSamplingAnalyzer.dll [英] How to fix “Internal Diagnostics Hub Exception” in VS 2015 - missing DiagnosticsHub.CpuSamplingAnalyzer.dll

查看:29
本文介绍了如何修复 VS 2015 中的“内部诊断中心异常" - 缺少 DiagnosticsHub.CpuSamplingAnalyzer.dll的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚在一台新笔记本电脑上安装了 VS 2015 Community Edition.Windows 10,一开始它运行良好,但随后它开始通知我

I've just installed VS 2015 Community Edition on a new laptop w. Windows 10, and to begin with it worked fine, but then it started notifying me about

内部诊断中心异常.有关详细信息,请参阅日志."

"Internal Diagnostics Hub Exception. See log for more details."

...每次我启动调试器时.

...every time I started the debugger.

如何修复内部诊断中心异常"在 VS 2015 Update 1 中? 我启用了日志记录,并且发现了这个错误条目:

As suggested in How to fix "Internal Diagnostics Hub Exception" in VS 2015 Update 1? I enabled logging, and I found this Error-entry:

错误 --- datawarehouse.cpp --- 加载分析器时出错 (0x8007007e):C:\Users\xxx\AppData\Local\assembly\dl3\HH5W5WAT.7JJ\23M53DB9.DG4\085d63d2\0070979a_f1cad101\amd64\DiagnosticsHub.CpuSamplingAnalyzer.dll.

Error --- datawarehouse.cpp --- Error loading analyzer (0x8007007e): C:\Users\xxx\AppData\Local\assembly\dl3\HH5W5WAT.7JJ\23M53DB9.DG4\085d63d2\0070979a_f1cad101\amd64\DiagnosticsHub.CpuSamplingAnalyzer.dll.

...但我不确定如何处理缺少的 DiagnosticsHub.CpuSamplingAnalyzer.dll?有什么建议吗?

...but Im not sure how to deal with a missing DiagnosticsHub.CpuSamplingAnalyzer.dll? Any suggestions?

(顺便说一下,我有一个 Intel CPU,不是 AMD)

(by the way, I have an Intel CPU, not AMD)

推荐答案

TLDR;

造成这种情况的原因是一个丢失的 DLL 正在从它可能不再存在的临时位置加载(大概是被更新或其他东西删除了.)

The cause of this is a missing DLL being loaded from a temp location where it may not exist anymore (presumably deleted by update or something.)

在这种情况下,您可以临时修复它:

You can temporarily fix it as follows in this case:

  1. 按照另一个答案中的说明启用登录注册表.
  2. 查找 DiagnosticsHub.CpuSamplingAnalyzer.dll 的路径试图从日志文件Microsoft.VsHub.Server.HttpHostx64.DiagnosticsHub.DataWarehouse.{​​some number}.log"中加载
  3. 在您的计算机上查找 DiagnosticsHub.CpuSamplingAnalyzer.dll 的位置系统(建议使用诸如 Everything.exe 之类的工具.)
  4. 将程序集复制到之前找到的文件夹中,创建文件夹根据需要.
  5. 问题应该得到解决.
  6. 再次禁用日志记录.
  1. Enable logging in registry as documented in another answer.
  2. Find path for DiagnosticsHub.CpuSamplingAnalyzer.dll where it is being attempted to be loaded from in log file "Microsoft.VsHub.Server.HttpHostx64.DiagnosticsHub.DataWarehouse.{some number}.log"
  3. Find location of DiagnosticsHub.CpuSamplingAnalyzer.dll on your system (using a tool such as Everything.exe is suggested.)
  4. Copy the assembly to the folder previously found, creating folders as required.
  5. Problem should be resolved.
  6. Disable logging again.

但是根据我的经验,由于所涉及文件夹的临时性质,问题又回来了.

However in my experience the problem comes back due to the temporary nature of the folder involved.

对我来说正确修复它的是将 TypeScript 安装到 VS2015 中,来自 此处,基于其他答案.

What fixed it properly for me was installing TypeScript into VS2015, from here, based on other answers.

长答案

此错误的不同原因是系统试图从不存在的(临时)位置加载程序集 (DiagnosticsHub.CpuSamplingAnalyzer.dll).

The different cause for this error being that the system is trying to load an assembly (DiagnosticsHub.CpuSamplingAnalyzer.dll) from a (temporary) location where it doesn't exist.

如果您启用了上面另一个答案中提到的日志记录,您将在生成的名为Microsoft.VsHub.Server.HttpHostx64.DiagnosticsHub.DataWarehouse.{​​some number}.log"的日志文件中看到以下形式的一行:

If you enable logging as mentioned in another answer above, you will see in the generated log file named "Microsoft.VsHub.Server.HttpHostx64.DiagnosticsHub.DataWarehouse.{some number}.log", a line of the form:

Error --- datawarehouse.cpp --- Error loading analyzer (0x8007007e): C:\Users\{your username}\AppData\Local\assembly\dl3\TDB857L9.5GZ\MEE1D8QG.O32\5171b53e\0070979a_f1cad101\amd64\DiagnosticsHub.CpuSamplingAnalyzer.dll.

由于该文件不存在于试图从中加载程序集的临时文件夹位置(这似乎是某种临时文件夹......),因此生成了错误.

As the file does not exist in the temp folder location where the assembly is being attempted to be loaded from (anymore, this appearing to be some kind of temp folder...) the error is thus generated.

在我的系统上,这个程序集实际上是在这里找到的(使用 Everything 找到,搜索DiagnosticsHub.CpuSamplingAnalyzer.dll"):

On my system, this assembly is actually found here (found using Everything, searching for "DiagnosticsHub.CpuSamplingAnalyzer.dll"):

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Platform\CPUSampling\x86\DiagnosticsHub.CpuSamplingAnalyzer.dll"
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Platform\CPUSampling\amd64\DiagnosticsHub.CpuSamplingAnalyzer.dll"

通过注册表扫描发现没有指向临时文件夹的链接,因此我认为它必须在某个 VS 配置 (?) 文件中引用.在 .config 文件中定位此引用的进一步尝试一无所获,因此我放弃并求助于从另一端修复此问题,例如通过将所需的 x64 程序集复制到日志文件中提到的路径.

A scan through the registry revealed no link to the temp folder, so I assume it must be referenced in a VS config (?) file somewhere. A brief further attempt at locating this reference in .config files found nothing, so I gave up and resorted to fixing this from the other side, e.g. by copying the required x64 assembly to the path mentioned in the log file.

这为我解决了这个问题的特殊原因.

修复后,VS错误停止,日志文件如下:

After the fix, the VS error stopped, and the log file logged as follows:

Info --- datawarehousehost.cpp --- DataWarehouse constructed for session: {cafe6fff-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Info --- datawarehouse.cpp --- Loading analyzer {dca8b3ef-xxxx-xxxx-xxxx-xxxxxxxxxxxx} from C:\Users\<user>\AppData\Local\assembly\dl3\TDB857L9.5GZ\MEE1D8QG.O32\5171b53e\0070979a_f1cad101\amd64\DiagnosticsHub.CpuSamplingAnalyzer.dll.
Info --- datawarehousehost.cpp --- Analyzer ({dca8b3ef-xxxx-xxxx-xxxx-xxxxxxxxxxxx}) constructed for session: {cafe6fff-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Debug --- datawarehouse.cpp --- Loading a default analyzer: {66edddf1-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

然而,这个修复结果只是暂时的,并且发现一个更永久的修复是将 TypeScript 安装到 VS 2015 中.

However this fix turned out to be only temporary and a more permanent fix was found to be installing TypeScript into VS 2015.

这篇关于如何修复 VS 2015 中的“内部诊断中心异常" - 缺少 DiagnosticsHub.CpuSamplingAnalyzer.dll的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆