Назад | Перейти на главную страницу

VMware Workstation запускает несуществующий и устаревший файл

Я выполняю программу командной строки с виртуальной машины (VMware 7.1.1) с Windows XP. Исполняемый файл находится на хост-машине. Если я запускаю командную строку в виртуальной машине, используя диск, смонтированный как

.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, она показывает дату последней сборки и выполняется, как ожидалось:

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

Можно ли как-то объяснить такое поведение? ДОЛЖЕН быть кеш для подключенного к хосту диска. Программа, которую он выполняет, больше не существует! Если я удалю его с хоста, виртуальная машина больше не сможет его выполнять. Если я восстановлю его, поведение снова станет таким же.

Я нашел решение - по-видимому, это была не основная проблема VMware, а скорее вызвана механизмом предварительной выборки Windows. В WINDOWS \ PREFETCH я нашел два файла myProgram.exe-xxxxxxxx.pf. Удаление их не помогло - вероятно, их содержимое кешируется. Перезагрузка виртуальной машины решила проблему (также без удаления файлов предварительной выборки). Я не хотел этого делать, потому что это был снимок, к которому я всегда возвращался в целях тестирования.

Похоже, у вас может возникнуть проблема с маршрутизацией. Что происходит, когда вы явно выполняете d: \ projects \ myprogram \ winrel \ myprogram.exe? То есть укажите полный путь до конца, используя путь к диску "D:".