VMware Workstation 执行不存在且过时的文件

VMware Workstation 执行不存在且过时的文件

我从装有 Windows XP 的虚拟机 (VMware 7.1.1) 执行命令行程序。可执行文件位于主机上。如果我在虚拟机中启动命令行,则使用作为

.host\SharedFolders

我看到以下内容:

D:\projects\myProgram\WinRel>dir myProgram.exe
02.09.2010  21:15           245.760 myProgram.exe

D:\projects\myProgram\WinRel>myProgram.exe
Processing BuildFeb 26 2009

这是错误的!整个程序的执行表现就像是过时一年多的版本!我反复检查,确保没有混淆或任何其他问题

如果我在主机上启动该程序,或者甚至使用 UNC 路径从 VM 启动该程序,它会显示最后的构建日期并按预期执行:

C:\>dir \\myMachine\drive_d\projects\myProgram\WinRel\myProgram.exe
02.09.2010  21:15           245.760 myProgram.exe

C:\>\\myMachine\drive_d\projects\myProgram\WinRel\myProgram.exe
Processing Build: Sep  2 2010

这种行为能以某种方式解释吗?主机安装的驱动器必须有缓存。它执行的程序不再存在!如果我从主机中删除它,虚拟机将无法再执行它。如果我恢复它,行为又会变得相同。

答案1

看来您可能遇到了路径问题。当您明确执行 d:\projects\myprogram\winrel\myprogram.exe 时会发生什么?也就是说,使用“D:”驱动器路径指定完整路径。

答案2

我找到了解决方案 - 显然这不是核心 VMware 问题,而是 Windows 预取机制导致的。在 WINDOWS\PREFETCH 中,我发现了两个文件 myProgram.exe-xxxxxxxx.pf。删除它们没有帮助 - 它们的内容可能被缓存了。重新启动 VM 解决了问题(也无需删除预取文件)。这是我不想做的事情,因为这是一个我总是为了测试目的而恢复的快照。

相关内容