[英]Locking files when building in Visual Studio 2010
你好,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上找到的所有地方都尝试了不同的解决方案。
在Stackoverflow的一些不同的问题中,我发现一个解决方案是你进入Project Properties > Build Events
,然后在预构建事件命令行中添加:
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
这使我有可能比平时更多地构建项目,但是当再次编辑代码然后构建时,出现了同样的错误。
注意: 尝试构建版本而不是调试版本似乎打破了预构建脚本,并且它以代码“1”退出,这似乎使VS无法正确构建。 删除预构建脚本使其再次像“正常”一样工作,但仍然有相同的错误。
这是我发现的另一个解决方案,但是对我来说也没有用,所以我认为Visual Studio已经拥有所需的所有权限并且以管理员身份运行实际上没有任何区别。
在这个问题上, Visual Studio中生成失败:无法从OBJ \\调试EXE文件复制到BIN \\调试 ,我发现另一种解决方案,其中包括改变AssemblyVersion
,在Properties\\AssemblyInfo.cs
的文件,到"2.0.0.0"
。 然而,这对我没有任何影响。
根据Internet上的不同答案,Visual Studio显然使用构建的项目可执行文件来呈现UserControl
设计器(?)。 在我的情况下,这可能不是它,因为我主要使用XNA而且它不使用UserControl
设计器。
这可能是我未能正确实施的解决方案。 我只是想,如果这是解决方案,我怎么没有被要求这样做。 我假设XNA卸载了通过Content
管道加载的所有Content
,因此这个解决方案不会“真正有意义”。
如果有人能够在这个问题上传播一些亮点,那真的很棒,因为它阻止我编程任何东西,因为我不喜欢等待10分钟因为我做了2秒钟的改变每时每刻。
我自己曾经遇到过这个问题几次。
我可能与你的原因不一样,但我会告诉你我出了什么问题,以及我如何解决它,希望它对你有所帮助。
基本上,我的程序从未完全退出,即使它似乎。 它将继续运行,从而继续锁定文件。
我最初使用的快速脏修复(以及证明是否是这种情况的方法)是:
所以,如果它存在,那么由于某种原因,你的程序没有像我的那样关闭。
通常,这是来自正在启动和忘记的线程,或者从未完成的异步任务,或类似的东西。
确保在OnExiting(..)void函数中杀死所有正在运行的线程。
如果你的程序仍在运行,尽管最好尝试关闭所有线程和其他阻塞程序,你可以使用非常脏的方法:在OnExiting(...)中运行代码“System.Diagnostics.Process.GetCurrentProcess()。Kill() ;” - 这将是taskmanager-style forceshutdown当前进程...这只是一个紧急情况,我不能让它工作任何其他方法。
我想我自己找到了解决方案。 在项目属性中,未选中“启用Visual Studio主机进程”。 检查它似乎已经解决了问题,至少目前是这样。
从mcmonkey4eva的帖子中提醒它。 所以,谢谢你=)
谢谢对方回复我的意见。 Stackoverflow太棒了!
您是否检查过防火墙是否阻止了任何文件? 当我切换到Avast的完整版本时,我发现我必须禁用File System Shield当我尝试运行我的visual studio项目时,它喜欢删除我的可执行文件。
升级到VS2012 Professional时遇到问题。 (SDK,.Net,Visual C ++ Redistributable包)
确保所有这些都与您使用的VS的当前版本兼容
我做了什么,是我最终卸载了与Visual Studio下载相关的一切。 如果您能够在其他地方删除并保存项目文件,然后将其恢复。 浏览所有程序文件以查看是否有任何隐藏在错误文件夹中的内容并检查您的C盘。
这意味着下载并重新安装(新鲜):
我想如果你清理你的程序文件,它应该没问题。 除非你非常确定你在做什么,否则我不建议你进入你的注册。 如果您已经对寄存器进行了更改,那么我们将查看该选项和其他选项(如果这不能解决您的问题)。
尝试通过取消选中文件夹级别从解决方案中删除只读检查。
我遇到了这个问题,在我的情况下是由于在解决方案中包含了bin; 一旦我从我的解决方案中排除了bin文件夹,问题就消失了。
没有任何帮助,没有预装命令,也没有设计师关闭,但我找到了一种帮助我的方法,只需从调试更改为发布,反之亦然,释放锁定文件,您可以在不关闭IDE的情况下删除它们。
如果我从Debug切换到Release然后立即F5进行编译,我经常遇到这个问题。 听起来很疯狂,等待,比如说,在模式之间切换一分钟就可以防止这种情况发生。
如果它被锁定,唯一的解决方案是关闭Visual Studio并重新打开。
我解决了这个问题,组织我的解决方案资源。 当我在同一解决方案文件夹中的应用程序上放置一些图像时,我注意到了这个错误
所以,
如果您将尝试此操作,请记住在“项目设置”中使用“应用程序图标”。
现在,一切都对我很好。
我希望它有所帮助。
您需要在锁定文件时禁用Windows Indexer
在我的情况下,问题似乎是由远程调试器引起的。 当您使用“x64”选项进行编译时,它将在本地计算机上启动。 尝试更改项目设置(properties / buid),直到达到最终版本。
将构建平台目标从x86更改为任何CPU。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.