在Visual Studio中进行调试时,“驱动器中没有磁盘”错误

每当我调试我的程序时,我有时会遇到几个错误,要求我将磁盘插入驱动器E和驱动器F.这似乎与VS有关,寻找最初在这些驱动器上开发的第三方组件的来源,例

在此处输入图像描述

如果我一直按取消,那么我的调试会话继续,但它很烦人。 我该如何阻止这种情况发生?

注意,我不是要尝试调试这些库,而是在Options / Debugging下勾选了“ Enable Just my Code ”。

这些DLL是在华盛顿州雷德蒙德的Microsoft构建服务器上构建的。 Microsoft通常会将这些构建服务器配置为在F:驱动器上查找其源代码。 例如,.NET Framework程序集是从f:\ dd构建的,“dd”是DevDiv,它是负责开发人员工具的Microsoft小组。 在DLL内部,可以有一个部分包含DLL构建时DLL的PDB文件的位置。

Unity由Microsoft的另一个团队制作,称为“模式和实践”。 值得注意的是使用相当差的做法。 包含PDB位置的DLL中的该部分应该被剥离,就像普通的.NET Framework程序集一样。 您可以从消息中看出它们不使用DevDiv使用的普通构建服务器。

所以你看到那个部分的内容,e:\ Builds是Unity最初找到的源代码。 这就是调试器首先要再次找到PDB的地方。 当然它不会找到它,你不是在那个构建服务器上调试代码:)这通常不会造成任何麻烦,调试器很快发现PDB不存在并继续搜索。 首先查看符号缓存,然后从符号服务器下载PDB。

不幸的是,在您的机器上,E:驱动器实际上存在。 但它处于不确定状态,驱动器号存在但实际上并未映射到function驱动器。 最常见的原因是您之前已将该驱动器映射到网络共享但网络连接不再起作用。 或者没有正确卸下的闪存驱动器。 因此,当Windows看到程序试图访问驱动器并生成一个低级提示,让您有机会重新建立驱动器连接时,Windows会介入。 它是臭名昭着的MS-Dos “Abort,Retry,Fail?”的GUI版本。 提示。

你当然不需要这个。 因此,请禁用驱动器,以便Windows让您安心。 单击桌面上的“计算机”快捷方式,右键单击E:驱动器并选择(我忘记确切的命令)断开连接或禁用,以便驱动器消失。

如果这最初是映射的网络驱动器,最佳做法是遵循Windows建议,它从Z自动驱动器开始自下而上映射驱动器。 如果驱动器号有其他来源(我认为有些机器将读卡器映射到该驱动器号),请在superuser.com上跟进,以了解如何摆脱这些非function性驱动器映射。 他们可能也会告诉你是否有办法彻底摆脱这个提示,应该有一个。

我发现关闭解决方案并删除.suo文件时,这种情况发生在我身上。 虽然我通常不会得到关于特定DLL的评论,只是驱动器,所以这可能不是完全相同的问题。