1

时WHE我尝试编译我的项目复制文件,我得到这个错误错误1无法编译

错误1无法复制文件“OBJ \调试\ oneForce.pdb”到 的“bin \调试\ oneForce.pdb”。访问路径 'obj \ Debug \ oneForce.pdb'被拒绝。 oneForce

任何人都可以帮助我如何纠正它吗?

回答

1

感谢所有谁在项目的obj文件夹贡献

,我改名为debug文件夹中,原因是我想删除它,但Windows不会让我,说文件夹不空。所以我怀疑文件的结果,只是重命名文件夹。

解决了这个问题

谢谢大家。

+0

这确实使得文件句柄似乎可能被另一个进程使用。 Windows将允许您重命名正在使用的文件,但不允许您修改或删除它。重命名它只是解决了问题,并允许VS在它想要的位置创建* new *文件。 –

+0

我没有重命名导致问题的'.pdo'文件,但文件夹 – Smith

+0

不相关;这仍然绕过这个问题。 Windows创建了一个不包含PDB文件的新文件夹。 –

0

看起来你的应用程序被另一个进程使用。确保它没有运行。打开任务管理器并检查它是否不存在。

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

+0

这不是应用程序,它是PDB文件。这很可能是另一个调试器(也许是Visual Studio的另一个实例?),它正在使用该文件。 –

+0

是的。重新启动VS或计算机将解决此问题。但是,掌握这个PDB需要弄清楚,所以它不会再发生。 –

+0

重新启动VS的建议是我答案的最后一段,在此之前,我提出了许多可能性来帮助追查罪魁祸首。我不确定那个评论应该是什么意思;我没有说过在我之前的评论中重启电脑。重点是PDB文件与应用程序是分开的。 –

1

确保在编译项目或正在构建的DLL(如果它是DLL)时正在编译的应用程序未在运行的任何应用程序中引用。
您可以使用Process Explorer来搜索您的应用程序,并且可能会在正常关闭时无法使用正在使用它的进程。

+0

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

+0

我已更新答案以反映您的评论。 – Amr

2

其他可能有打开obj \ Debug \ oneForce.pdb文件。你有没有在Visual Studio的多个副本中打开该项目?

否则找出有什么文件打开。见this superuser question如何做到这一点。

1

Visual Studio正在尝试修改位于项目的Debug文件夹中的自动生成的PDB文件(包含调试信息),但有些内容阻止了它的执行。

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

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

<SolutionDir>\bin\Debug\oneForce.pdb 

而且你可以像使用Sysinternals的Process Explorer的应用程序来检查,看看有什么其他的应用程序可能有一个文件打开。

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

+0

我只有一个VS运行的实例,并且我还没有解决方案很多次重启VS,甚至重新启动我的系统。 – Smith

+0

@史密斯:如果您已经重新启动计算机,那么任何进程仍然无法控制文件的句柄是不可能的。因此,您似乎更有可能没有完全写入您的PDB文件所在的文件夹的写入权限。尝试使用Windows资源管理器复制或创建该文件夹中的文件,并查看是否有效。另外请记住,访问该文件夹可能需要管理权限,Visual Studio默认情况下不会在标准用户帐户下运行。尝试通过右键单击图标并使用上下文菜单选项以管理员身份启动VS。 –

+0

我已经在这个项目上运行了2个多月了,而且我没有遇到任何错误。它今天刚刚开始 – Smith

0

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