自从升级到VS 2010(从2005年开始)以来,我们偶尔会看到这样的警告:
Warning: mt.exe failed to write to <our DLL>; retrying.
通常mt重试一次并成功。偶尔会尝试四次然后失败。这似乎是一个时间问题。
我们的第一个理论是我们的反病毒(扫描访问)暂时锁定了DLL来扫描它,有时这需要比mt等待更长的时间。但即使我们禁用反病毒,问题仍然存在。
有没有其他人看过这个问题并成功诊断出来了?
答案 0 :(得分:2)
感谢@Hans Passant关于尝试Process Monitor的建议,我发现在链接器创建它们时会有扫描可执行文件。
在我们的例子中,它是Bit9(parity.exe)。在链接器创建二进制文件后,Bit9尝试扫描二进制文件与清单工具尝试更新二进制文件之间存在竞争条件。
这类似于当您拥有主动扫描新文件的防病毒软件时所发生的情况,但由于我们已经禁用了我们的防病毒软件,因此问题令人费解。