【发布时间】:2013-06-09 11:58:49
【问题描述】:
你好,Stackoverflow。
最近,当我在 Visual Studio 2010 中编程时,我遇到了 VS 在尝试构建时锁定 bin/Debug/(ProjectName).exe 文件的问题,并在尝试构建后给了我以下错误构建项目 10 次:
无法将文件“obj\x86\Debug\TileEngine.exe”复制到“bin\x86\Debug\TileEngine.exe”。该进程无法访问文件“bin\x86\Debug\TileEngine.exe”,因为它正被另一个进程使用。
当我编辑源代码然后尝试调试时出现问题。 我检查过使用不同的程序,唯一使用该文件的程序是 Visual Studio。
如果我在尝试构建之前等待大约 10 分钟,它似乎可以正常工作,但是在尝试不同的东西时,需要等待 10 分钟再尝试某些东西是不好的。
我在这个网站以及在 Google 上可以找到的所有地方都尝试了不同的解决方案。
我找到了一些解决方案,但对我没有用
解决方案 1 - 使用预构建脚本
在 Stackoverflow 上的一些不同问题中,我找到了一种解决方案,您可以进入 Project Properties > Build Events,然后在 Pre-build event 命令行中添加:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
这使我可以比平时多构建一次项目,但是当再次编辑代码,然后构建时,出现了同样的错误。
注意:尝试构建版本而不是调试构建似乎会破坏预构建脚本并以代码“1”退出,这似乎使 VS 无法正确构建。删除预构建脚本使其再次像“正常”一样工作,但仍然出现相同的错误。
解决方案 2 - 以管理员身份运行 Visual Studio
这是我找到的另一种解决方案,但对我也没有用,所以我假设 Visual Studio 已经拥有所需的所有权限,并且以管理员身份运行实际上并没有任何区别。
解决方案 3 - 更改 AssemblyVersion
在这个问题Visual Studio build fails: unable to copy exe-file from obj\debug to bin\debug 中,我找到了另一个解决方案,其中包括将Properties\AssemblyInfo.cs 文件中的AssemblyVersion 更改为"2.0.0.0"。
然而,这对我没有任何影响。
解决方案 4 - 在构建之前关闭 UserControl 设计器
根据互联网上一些不同的答案,Visual Studio 显然使用构建的项目可执行文件来呈现UserControl 设计器(?)。不过,就我而言,这可能不是它,因为我主要使用 XNA 而它不使用 UserControl 设计器。
解决方案 5 - 应用程序退出时清理资源
这可能是我未能正确实施的解决方案。我只是在想,如果这是解决方案,为什么我以前没有被要求这样做。我假设 XNA 会卸载通过Content 管道加载的所有内容,因此这个解决方案没有任何实际意义。
如果有人能够在这个问题上传播一些信息,那就太棒了,因为它阻止了我真正编写任何东西,因为我不喜欢等待 10 分钟,因为我已经做了一个2 秒时刻变化。
【问题讨论】:
-
欢迎来到 Stackoverflow。感谢您和
+1的努力,即使这是您的第一个问题。 -
谢谢!我在这里看到了很多其他不好的问题,不想自己做一个=)
-
这看起来像一个非常相似的问题,有一个明确的解决方案:stackoverflow.com/questions/3906404/…
-
这个问题在一年前就解决了,不过还是谢谢=P
标签: c# visual-studio-2010 xna