【问题标题】:Error 1 Unable to copy file when compiling错误1 编译时无法复制文件
【发布时间】:2011-10-11 06:10:10
【问题描述】:

当我尝试编译我的项目时,我得到了这个错误

错误 1 ​​无法将文件“obj\Debug\oneForce.pdb”复制到 “bin\Debug\oneForce.pdb”。访问路径 'obj\Debug\oneForce.pdb' 被拒绝。一个力量

谁能帮我解决一下?

【问题讨论】:

    标签: .net winforms visual-studio-2008 compiler-errors compilation


    【解决方案1】:

    其他东西可能打开了 obj\Debug\oneForce.pdb 文件。您是否在多个 Visual Studio 副本中打开了该项目?

    否则找出打开的文件。请参阅this superuser question 了解如何执行此操作。

    【讨论】:

      【解决方案2】:

      Visual Studio 正在尝试修改位于您项目的 Debug 文件夹中的自动生成的 PDB 文件(包含调试信息),但它阻止了它这样做。

      确保您对保存项目的文件夹具有完全写入权限,并且调试器(例如 Visual Studio 的另一个实例)未使用 PDB 文件。

      错误消息告诉您文件所在的项目/解决方案目录的相对路径;这是您应该检查以确保您具有读/写访问权限的地方:

      <SolutionDir>\bin\Debug\oneForce.pdb
      

      您可以使用像 Sysinternals 的 Process Explorer 这样的应用程序来检查其他应用程序可能会打开该文件。

      最后,如果一切都失败了,请尝试关闭 Visual Studio 并重新启动它。这通常可以解决文件句柄在应该关闭时仍然打开的任何问题。

      【讨论】:

      • 我只运行了一个VS实例,而且我已经多次重启VS没有解决方案,甚至重启我的系统。
      • @Smith:如果您重新启动了计算机,那么任何进程都不可能仍然持有该文件的句柄。因此,您似乎更有可能对存储 PDB 文件的文件夹没有完全写入权限。尝试使用 Windows 资源管理器在该文件夹中复制或创建文件,看看是否可行。另请记住,访问该文件夹可能需要管理权限,默认情况下 Visual Studio 不会在标准用户帐户下运行。尝试通过右键单击图标并使用上下文菜单选项以管理员身份启动 VS。
      • 我已经运行这个项目两个多月了,我没有遇到任何错误。今天才开始
      【解决方案3】:

      确保在构建项目时您正在编译的应用程序没有运行,或者正在构建的 DLL(如果它是 DLL)未被任何正在运行的应用程序引用。
      您可以使用Process Explorer 搜索您的应用程序,如果正常关闭它不起作用,可能会终止正在使用它的进程。

      【讨论】:

      • 正在使用 PDB 文件,而不是应用程序。这不一定是同一件事。此外,不要只是漫无目的地杀死进程。如果可能,请正确关闭它们。 Process Explorer 应该主要是诊断问题的工具,而不是解决问题。
      【解决方案4】:

      感谢所有贡献者

      在项目的obj文件夹中,我重命名了调试文件夹,原因是我试图删除它,但是windows不让我,说文件夹不是空的。所以我怀疑文件损坏并简单地重命名了文件夹。

      解决了问题

      谢谢大家。

      【讨论】:

      • 这确实使文件句柄似乎正在被另一个进程使用。 Windows 将允许您重命名正在使用的文件,但不允许您修改或删除它。重命名它只是绕过了这个问题,并允许 VS 在它想要的位置创建一个 new 文件。
      • 我没有重命名导致问题的 .pdo 文件,但文件夹
      • 无关;这仍然绕过了问题。 Windows 创建了一个尚未包含 PDB 文件的新文件夹。
      • 正如我之前所说的,该文件没有被另一个进程使用,如果你还在说,我重新设置了我的系统,以确保,VS 是我启动的唯一程序,只是为了确定
      【解决方案5】:

      您的应用似乎已被另一个进程使用。确保它没有运行。打开任务管理器看看是不是没有。

      重新启动 VS 或机器应该会有所帮助,但您需要弄清楚是什么持有您的 pdb。可以是性能分析器或 DotTrace。

      【讨论】:

      • 不是应用程序,是 PDB 文件。可能有另一个调试器(可能是另一个 Visual Studio 实例?)正在使用该文件。
      • 是的。重新启动 VS 或计算机将解决此问题。但是需要弄清楚是什么持有这个 PDB,所以它不会再次发生。
      • 重启 VS 的建议是我回答的最后一段,在此之前我提出了许多帮助追查罪魁祸首的可能性。我不确定那条评论应该是什么意思;我在之前的评论中没有说要重新启动计算机。关键是 PDB 文件与应用程序是分开的。
      【解决方案6】:

      您可以使用process explorer(来自 sysinternals)来发现锁定 pdb 文件的进程(或应用程序)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 2018-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多