创建调试信息文件GG.PDB"——"时出现意外错误

本文关键字:quot 意外 错误 调试 PDB 文件 创建 信息 GG | 更新日期: 2023-09-27 18:04:16

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

错误1创建调试信息文件'D:'Documents'Lance'Documents'School'Capstone'GG'GG' GG'obj' debug 'GG时出现意外错误。PDB'——" GG

我最近不幸的让我的电脑重新启动,由于突然的电源问题(可能)。

当电脑重新联机时,我注意到我在突然断电之前对程序所做的更改没有保存。而且,它不会再生成了

创建调试信息文件GG.PDB"——"时出现意外错误

这对我有用:

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

按要求,我的评论作为回答:


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

由于构建过程中途因电源故障而中断,因此文件没有被锁定——构建系统可能只是处于不一致的状态(Clean Solution应该修复)。

这种情况在我的环境中偶尔发生一次,问题可能与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

这对我来说很有效:使用关闭Visual studio和打开Visual studio,以管理员身份运行,问题就解决了。

不需要重新启动或删除文件。只需重命名文件,这就足够了。如果你试图删除文件,它会给出一个错误。最好把它重命名为&它会成功的。:)

如果你在一个web应用程序中遇到这个问题,这可能发生在你使用DebugDiag并创建了一个监听项目应用程序池的规则的不寻常情况下。删除规则可防止此问题再次发生。

例如,如果您按照以下说明诊断IIS中的堆栈溢出异常,就可能发生这种情况。

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

重启VS的缺点:

  • 剪贴板将丢失
  • 重做/撤销将丢失
  • 打开的文件会丢失
  • 你将失去节奏

解决方案:给您的程序集起一个新名称。没有缺点。除了在准备进行最终部署时必须将程序集重命名回其原始名称之外。我想每个人都可以找到如何让它最后一次工作:)

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

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

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

我的猜测是,编译器使用bin和/或obj目录,但输出不兼容(当然)。

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