创建调试信息文件GG.PDB时出现意外错误“ - ”

时间:2011-07-31 00:32:07

标签: c# .net visual-studio debugging

当我尝试构建项目时,它会返回以下错误:

错误1创建调试信息文件时出现意外错误'D:\ Documents \ Lance \ Documents \ School \ Capstone \ GG \ GG \ obj \ Debug \ GG.PDB' - ''GG

由于突然的电源问题(可能),我最近不幸地让我的PC重新启动。在此问题开始之前,这是在项目构建期间。

当PC重新上线时,我注意到在突然断电之前我对程序所做的更改没有保存。并且,它将不再构建。

10 个答案:

答案 0 :(得分:39)

这对我有用:

  1. 关闭VS.NET
  2. 浏览到Windows资源管理器中的项目
  3. 删除/ obj /文件夹。
  4. 从/ bin删除项目输出(.dll和.pdb)(不确定是否需要此步骤)
  5. 不能伤害但可能有帮助:从有问题的解决方案中删除任何其他项目/ bin文件夹的项目输出(对我来说不是必需的)
  6. 重启VS.NET
  7. 重建
  8. http://weblogs.asp.net/ssmith/archive/2003/08/12/23755.aspx

答案 1 :(得分:22)

根据要求,我的评论作为答案:


尝试清理解决方案(在VS的Build菜单下)。

由于构建在电源故障中途中断,因此文件未被锁定 - 构建系统可能处于不一致状态(Clean Solution应该修复)。

答案 2 :(得分:9)

这种情况偶尔发生在我的环境中,问题可能与PDB文件被锁定有关(即,我猜你的帖子中缺少错误消息的最后一部分)。这就是它在我的机器上的样子:

Unexpected error creating debug information file 'c:\dir\obj\file.PDB' -- 'c:\dir\obj\file.PDB: The process cannot access the file because it is being used by another process.'

在我的情况下,清理解决方案并不能解决问题,重新启动是一种过度杀伤,所以我通常只是复制pdb文件的全名(来自错误)并在命令行上执行:

ren c:\dir\obj\file.PDB *.old

答案 3 :(得分:7)

这对我有用:关闭Visual Studio并使用 以管理员身份运行 打开visual studio,问题就解决了。

答案 4 :(得分:2)

无需重启或删除文件。 只需重命名文件即可。如果您尝试删除该文件,则会出错。更好的只是重命名它&它会工作。 :)

答案 5 :(得分:1)

如果您在使用Web应用程序时出现此问题,则可能会在您使用DebugDiag的异常情况下发生这种情况,并创建了一个侦听项目应用程序池的规则。删除规则可防止此问题再次发生。

例如,如果您使用these instructions来诊断IIS中的堆栈溢出异常,则可能会发生这种情况。

答案 6 :(得分:1)

如果您正在使用两个用户的VM,请确保其他用户在调试时没有附加所有进程。

答案 7 :(得分:0)

重启VS的缺点:

  • 剪贴板将丢失
  • 重做/撤消将丢失
  • 文件打开将丢失
  • 你会放松节奏

解决方案: 给你的大会一个新名字。没有利弊。除非您准备好进行最终部署,否则必须将程序集重命名为其原始名称。而且我认为任何人都可以找到如何让它最后一次工作:)

答案 8 :(得分:0)

有时,\ bin文件夹中的所有文件都由正在运行的进程使用,即IIS上的网站或Windows服务在构建后自动运行。在这种情况下,关闭服务或停止特定站点的IIS应用程序池也应该有帮助(就像我的情况一样)

答案 9 :(得分:0)

有时我会为(非常)不同的目标编译同一个项目时遇到这个问题:

  • VS2008和net35
  • VS2017和net462
  • dotnet core 2.0

我的猜测是,编译器使用bin和/或obj目录,但输出不兼容(当然)。 VS的解决方案清理确实有帮助。

通常我们为输出指定不同的dll名称(例如mylib.dll,mylib35.dll),这些项目从未发生过这个问题。