如何修复VS 2015中的“内部诊断中心异常” - 缺少DiagnosticsHub.CpuSamplingAnalyzer.dll

时间:2016-07-25 12:21:12

标签: visual-studio-2015 diagnostics-hub

我刚刚在新的笔记本电脑上安装了VS 2015 Community Edition。 Windows 10,并从它开始工作正常,但后来它开始通知我

  

“内部诊断中心例外。有关详细信息,请参阅日志。”

...每次启动调试器时都会。

正如How to fix "Internal Diagnostics Hub Exception" in VS 2015 Update 1?中所建议我启用了日志记录,我发现了这个错误条目:

  

错误--- datawarehouse.cpp ---加载分析器时出错(0x8007007e):   C:\用户\ XXX \应用程序数据\本地\组件\ DL3 \ HH5W5WAT.7JJ \ 23M53DB9.DG4 \ 085d63d2 \ 0070979a_f1cad101 \ AMD64 \ DiagnosticsHub.CpuSamplingAnalyzer.dll

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

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

1 个答案:

答案 0 :(得分:1)

TLDR;

此问题的原因是从可能不再存在的临时位置加载了丢失的DLL(大概是通过更新或其他方式删除了)。

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

  1. 启用another答案中所述的登录注册表。
  2. 查找 DiagnosticsHub.CpuSamplingAnalyzer.dll 所在的路径 试图从日志文件“ Microsoft.VsHub.Server.HttpHostx64.DiagnosticsHub.DataWarehouse。{some number} .log”中加载
  3. 在您的计算机上找到 DiagnosticsHub.CpuSamplingAnalyzer.dll 的位置 系统(建议使用诸如 Everything.exe 之类的工具。)
  4. 将部件复制到先前找到的文件夹中,创建文件夹 根据需要。
  5. 问题应该解决。
  6. 再次禁用日志记录。

但是,根据我的经验,由于所涉及文件夹的临时性质,问题再次出现。

对我来说,正确解决的问题是根据其他答案将here中的TypeScript安装到VS2015中。

好答案

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

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

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.

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

在我的系统上,实际上可以在这里找到该程序集(使用Everything找到,搜索“ 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"

对注册表的扫描显示没有指向temp文件夹的链接,因此我认为必须在某个地方的VS config(?)文件中引用它。在.config文件中定位该引用的简短尝试没有发现任何结果,因此我放弃了,并采取了从另一端进行修复的方法,例如通过将所需的x64程序集复制到日志文件中提到的路径。

这已为我解决了导致此问题的特定原因。

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

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中。