自从我开始使用 Windows 7 零售版(而不是 Beta 版和 RC 版)以来,我一直遇到一个与可执行文件相关的特殊问题。我第一次注意到它是在使用 Visual Studio 时,当构建项目时,它经常会失败,提示输出文件已被锁定 - 但问题进一步发展。
当我执行一个应用程序、(干净地)关闭它并尝试删除/移动/重命名/覆盖该文件时,Windows 7 会告诉我该文件已被锁定/访问被拒绝。 我使用过 LockHunter/Unlocker 等软件但似乎无法移除这些锁(大多数情况下,它根本不显示任何锁)。大约 5-10 分钟后,相应的文件会再次解锁,但不用说,这有点破坏工作流程(因为它不仅限于 VS)。
我已完成常规的病毒/恶意软件扫描任务,但一无所获。我没有运行任何特殊服务,在安装 Windows 7 零售版之前也不存在此问题。
任何帮助是极大的赞赏。
答案1
我觉得罪魁祸首是Windows 索引服务。
虽然我自己没有遇到过这样的问题,但我读到过(就我记得,是在 Windows 7 上安装 TortoiseSVN 或 TortoiseHG 时)索引服务有时会出现文件锁定问题。基本上,服务正在尝试索引文件,因此它会在执行此操作时锁定文件。
我不确定这是否是解决您的问题的正确答案,但我建议您尝试配置索引服务的设置,或者仅为我们的开发目录禁用它。
以下是一些内容TortoiseSVN FAQ 中写到与此类似的问题:
此错误消息通常出现在您尝试更新或提交工作副本时,在 Windows 7 系统上似乎很常见。这是由于另一个进程持有 Subversion 需要移动或修改的文件的句柄。这可能是病毒扫描程序,但在 Windows 7 上,它很可能是 Windows 索引服务。关闭工作副本和存储库上的索引服务,并将其排除在病毒扫描之外。
希望我能帮上忙!
PS:我可能会稍后更新这个答案,并提供配置索引服务的指南。