【问题标题】:Unexpected Error creating debug information file GG.PDB"--"创建调试信息文件 GG.PDB 时出现意外错误“--”
【发布时间】:2011-07-31 00:32:07
【问题描述】:

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

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

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

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

【问题讨论】:

  • 尝试清理解决方案(在 VS 的 Build 菜单下)
  • 你尝试过干净的构建吗?
  • 您使用的是版本控制系统吗?可能是任何锁定问题?
  • @CharithJ,我没有使用任何版本控制系统(无论如何,抱歉,新人)。只是'香草'Visual Studio 2005。@ Cameron,谢谢!那行得通。
  • @Cameron,这些年来我都忘了问 - 我只是注意到它,因为它有一个著名的问题徽章 - 我真诚地道歉,但你能把你的评论作为答案,所以我可以接受吗?

标签: c# .net visual-studio debugging


【解决方案1】:

这对我有用:

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

http://weblogs.asp.net/ssmith/archive/2003/08/12/23755.aspx

【讨论】:

  • 为我工作 :) 我断电了,我发生了那个错误,我删除了 obj 文件夹,然后重建它工作得很好。
  • 这行得通,尽管我必须先执行iisreset,然后才能执行第 3 步,因为 w3wp.exe 保留了 /obj/ 中的 .pdb 文件
  • 它第一次对我有用.. 但它又掉了。我必须重命名我的程序集名称才能使其正常工作。无需重启 VS。
【解决方案2】:

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


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

由于构建在中途因电源故障而中断,因此文件未锁定 - 构建系统可能只是处于不一致状态(清洁解决方案应修复)。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 是的。显然文件并不重要。重命名文件就像一个魅力:)
    • 好吧,我想说该文件很重要,即如果你想调试。但它将在下一次构建时重新创建。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      不需要重新启动或删除文件。 只需重命名文件就足够了。如果您尝试删除该文件,则会出现错误。最好只是重命名它,它会工作。 :)

      【讨论】:

        【解决方案6】:

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

        这可能发生,例如,如果您按照these instructions 诊断 IIS 中的堆栈溢出异常。

        【讨论】:

          【解决方案7】:

          如果您使用两个用户在 VM 上工作,请确保另一个用户在调试时没有附加所有进程。

          【讨论】:

            【解决方案8】:

            重启VS的缺点:

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

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

            【讨论】:

              【解决方案9】:

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

              【讨论】:

                【解决方案10】:

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

                • VS2008 和 net35
                • VS2017 和 net462
                • dotnet 核心 2.0

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2023-04-01
                  • 2014-08-27
                  • 2021-08-12
                  • 1970-01-01
                  • 2018-06-28
                  • 1970-01-01
                  • 2019-09-23
                  • 1970-01-01
                  相关资源
                  最近更新 更多