我有一个在本地运行良好的单元测试,但是当上传到 TeamCity 构建服务器时失败并显示“该进程无法访问该文件,因为它正被另一个进程使用。”
- 在我在测试中做任何事情之前,我会检查设置是否存在文件,如果存在,请尝试删除它。这失败并显示与上述相同的错误消息
- 在编写文件时,我关闭了编写器,然后将其处理掉,我认为这应该摆脱任何资源。
所以我有几个疑问
- 有没有人遇到过类似的问题并设法绕过它们
- 如何通过程序找出是什么进程自私地锁定了文件!!!
干杯
Sysinternals handle.exe是第一步。或使用Process Explorer的Find Handle or DLL
. 不过,杀死进程总是比关闭句柄更安全。
以编程方式,这是编写读取 Windows 句柄表的内核驱动程序的问题。
ProcessMon(用于查找)和Unlocker(至少用于解锁)也很有用。