确定哪个进程锁定了文件

时间:2008-11-20 16:09:22

标签: vb.net file-io teamcity

我有一个在本地运行良好的单元测试,但是当上传到TeamCity时,构建服务器失败,“进程无法访问该文件,因为它正由另一个进程使用。”

  1. 在我做任何测试之前 我检查文件的设置 存在,如果是这样,尝试删除它。 这失败并出现相同的错误 消息如上
  2. 当wriitng 文件,然后关闭作者 处置它我认为应该 摆脱任何资源。
  3. 所以我有几个问题

    1. 有没有人遇到类似的问题,并设法绕过他们
    2. 如何找出programticall是什么 过程自私地锁定了 文件!!!
    3. 干杯

3 个答案:

答案 0 :(得分:4)

Sysinternals handle.exe是第一步。或者使用Process ExplorerFind Handle or DLL。但是,终止进程比关闭句柄更安全。

以编程方式,这是编写一个读取Windows句柄表的内核驱动程序的问题。

答案 1 :(得分:2)

ProcessMon(用于查找)和Unlocker(至少用于解锁)也很有用。

答案 2 :(得分:1)

Sysinternals FileMon提供了一些关于他们如何在旧版Windows中完成此操作的信息(向下滚动)。

Process monitor是他们的最新版本,但它没有提供很多关于他们如何做的线索。但是,有一些知识库文章链接到那里,应该引导您获取这些信息。

- 亚当