У меня есть приложение на Ruby, которое я устанавливаю (вместе с упакованным интерпретатором ruby) в Program Files в Windows 7 с помощью установщика, созданного NSIS. Чтобы отладить его, я отредактировал один из файлов, добавив несколько операторов отладки. После этого я удалил пакет и запустил новую версию установщика, которая включает новую копию отредактированного файла без операторов отладки.
Теперь я не могу получить новую копию для загрузки в ruby. Если я запускаю type <filename>
в cmd.exe или открываю файл в Notepad.exe или Firefox, я вижу новую версию. Если я запускаю ruby -e "puts File.read('<filename>')"
или открываю файл в emacs, я вижу старую версию.
Если в проводнике Windows я скопирую файл в новое имя файла, все содержимое сможет увидеть новое содержимое в этом имени файла. Если я удаляю исходный файл и переименовываю копию для замены оригинала, возвращается разделенная личность.
Эта ситуация переживает перезагрузку, поэтому дело не в том, что файл случайно остается открытым.
Что здесь происходит? Есть ли какой-то аспект процесса установки, который может быть контрольным указанием файла таким образом, чтобы я мог вернуться или, по крайней мере, отключить его во время отладки установщика?
обновление
Если я запускаю ruby -e "puts File.read('<filename>')"
в консоли, которая запускается от имени администратора, я вижу правильное новое содержимое. Как должен управлять этим файлом?