由于 mscordbi.dll 版本错误,托管调试不再有效

Managed debugging does not work anymore, due to wrong version of mscordbi.dll

我正在尝试使用 Visual Studio 来调试内存转储,但失败并显示以下错误消息:

Managed debugging is not available for this minidump.

A required library for managed minidump debugging,'mscordbi.dll', version '4.0.30319.0', could not be located.

Restart your debug session after trying one of more of the following steps:

  1. 如果此计算机当前未连接到 Internet,请连接以便可以从 Microsoft 下载 dll。
  2. 在调试器选项下的符号设置中指定 'mscordbi.dll' 的路径。
  3. Select 'Debug with Native Only'.

在检查我的符号设置时,有以下符号文件 (.pdb) 位置(均已选中):

Environment Variable: _NT_SYMBOL_PATH
Microsoft Symbol Servers
C:\Dump_Repository\... (not relevant for this question)

预见到缓存目录,自动加载首选项设置为Load all modules, unless excluded。唯一被排除在外的是 user32.dll.

_NT_SYMBOL_PATH 环境变量的值如下:

cache*;srv*C:\Dump_Analyse*C:\build_machine1;cache*;srv*C:\Dump_Analyse*\build_machine2\Development\Symbols;cache*;srv*C:\Dump_Analyse*\build_machine1\Symbols;cache*;srv*https://msdl.microsoft.com/download/symbols;cache*;srv*C:\ProgramData\dbg\sym

在提到的目录C:\Dump_Analyse中,有一个目录mscordbi.dll,有三个子目录,每个子目录包含提到的mscordbi.dll DLL:

Prompt>find ./ -name "mscordbi.dll" 2>/dev/null
  ./Dump_Analyse/mscordbi.dll (this is a directory)
  ./Dump_Analyse/mscordbi.dll/4BA1DA2Deb000/mscordbi.dll
  ./Dump_Analyse/mscordbi.dll/563C0E8E10b000/mscordbi.dll
  ./Dump_Analyse/mscordbi.dll/583E5AAD10b000/mscordbi.dll

最后两个似乎不太相关,但第一个的文件版本为 4.0.30319.1(与请求的版本非常接近)。

我的电脑已经连上了网络,我的账户似乎没问题(我最近修改了我的Windows账户的密码,但是我在Visual Studio上用另一个账户登录了).

有谁知道这里可能发生了什么以及我该如何解决这个问题?

问题已解决:
进一步尝试时,我想清除符号缓存,但没有用(据说用户权限不正确)。

缓存符号是一个目录,包含波浪字符:~(类似 C:\Users\Dominique~1\AppData\Local\Temp\SymbolCache)。

我已将其替换为真实的目录名称(通过单击 Browse 按钮):

C:\Users\DominiqueDS\AppData\Local\Temp\SymbolCache

换句话说(用于搜索目的):在 Visual Studio 符号设置中,符号缓存目录不应包含 ~(波浪号)字符。