你好,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的一些不同问题中,我发现一个解决方案是进入项目属性>生成事件
,然后在预构建事件命令行中添加:
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构建失败:无法从obj\debug复制exe文件到bin\debug,我找到了另一个解决方案,其中包括在Properties\AssemblyInfo.cs
文件中更改AssemblyVersion
为"2.0.0.0"
。
然而,对我来说完全没有任何区别。
解决方法4-在构建之前关闭UserControl设计器
根据互联网上的一些不同答案,Visual Studio显然使用构建项目可执行文件来呈现UserControl
设计器(? )。 在我的情况下,这可能不是它,因为我主要使用XNA,而它不使用UserControl
设计器。
解决方法5-清理应用程序退出时的资源
这可能是一个我未能正确实现的解决方案。 我只是想,如果这是解决方案,那么为什么我以前没有被要求这样做。 我认为XNA会卸载通过Content
管道加载的所有内容,因此这个解决方案并没有真正意义。
如果有人能够解决这个问题,那将是非常棒的,因为它阻止了我编写任何东西,因为我不喜欢因为每次进行2秒更改而等待10分钟。