由于 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:
- 如果此计算机当前未连接到 Internet,请连接以便可以从 Microsoft 下载 dll。
- 在调试器选项下的符号设置中指定 'mscordbi.dll' 的路径。
- 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 符号设置中,符号缓存目录不应包含 ~
(波浪号)字符。
我正在尝试使用 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:
- 如果此计算机当前未连接到 Internet,请连接以便可以从 Microsoft 下载 dll。
- 在调试器选项下的符号设置中指定 'mscordbi.dll' 的路径。
- 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 符号设置中,符号缓存目录不应包含 ~
(波浪号)字符。