【问题标题】:'No disk in the Drive' error when debugging in Visual Studio在 Visual Studio 中调试时出现“驱动器中没有磁盘”错误
【发布时间】:2014-07-28 13:50:05
【问题描述】:

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

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

请注意,我不是尝试调试这些库,并且我在选项/调试下勾选了“仅启用我的代码”。

【问题讨论】:

  • 看起来您的项目在 Loading... 消息中有对该路径的引用。尝试删除它。

标签: c# visual-studio-2013 visual-studio-debugging


【解决方案1】:

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

Unity 由 Microsoft 的另一个小组开发,称为“模式和实践”。值得注意的是使用相当糟糕的做法。 DLL 中包含 PDB 位置的部分应该被剥离,因为它是用于普通 .NET Framework 程序集的。您可以从消息中看出他们不使用 DevDiv 使用的正常构建服务器。

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-04-26
      • 2012-03-22
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多