debugging 由于mscordbi.dll的版本错误,托管调试不再工作

mxg2im7a  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(233)

我尝试使用Visual Studio以托管方式调试内存转储,但失败并显示以下错误消息:
Managed两柴无法用于这个小型倾印。
未能找到托管小型转储调试所需库'mscordbi.dll'版本'4.0.30319.0'
在尝试以下一个或多个步骤后,重新启动调试会话:
1.如果此计算机当前未连接到Internet,请连接以便可以从Microsoft下载dll。
1.在“调试器选项”下的“符号设置”中指定“mscordbi.dll”的路径。
1.选择“仅使用本机进行调试”。
检查我的符号设置时,存在以下符号文件(.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(与请求的版本非常接近)。
我的计算机已连接到Internet,我的帐户似乎没有问题(我最近修改了Windows帐户的密码,但我是使用另一个帐户登录Visual Studio的)。
有人知道这里可能发生了什么吗?我该如何解决这个问题?

8yparm6h

8yparm6h1#

问题解决了:
在进一步尝试时,我想清除符号缓存,但没有成功(据说用户权限不正确)。
该缓存符号是一个目录,包含一个波浪号字符:~(类似于C:\Users\Dominique~1\AppData\Local\Temp\SymbolCache)。
我已将其替换为真实的目录名(通过单击Browse按钮):

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

换句话说(用于搜索目的):在Visual Studio符号设定中,符号快取目录不应包含~(波状符号)字符。

相关问题