我有一个Ruby应用程序,我正在使用NSIS构建的安装程序在Windows 7上的Program Files下安装(与打包的ruby解释程序一起)。为了调试它,我编辑了一个文件来添加一些调试语句。之后,我卸载了该软件包并运行了新版本的安装程序,其中包含已编辑文件的新副本,而没有调试语句。Program Files下的文件有分裂的个性
现在,我无法获得新的副本加载到红宝石。如果我在cmd.exe中运行type <filename>
,或者在Notepad.exe或Firefox中打开该文件,我会看到新版本。如果我运行ruby -e "puts File.read('<filename>')"
,或者在emacs中打开文件,我会看到旧版本。
如果在Windows资源管理器中,我将该文件复制到一个新文件名,则所有内容都可以在该文件名中看到新内容。如果我删除原始文件并重命名副本以替换原始文件,则分裂的个性将返回。
这种情况在重新启动后仍然存在,所以它不是一个简单的文件被意外打开的问题。
这到底是怎么回事?安装过程中是否有某些方面可能会以我可以恢复的方式检查文件,或者至少在调试安装程序时关闭?
更新
如果我是管理员身份运行控制台运行ruby -e "puts File.read('<filename>')"
,我看到正确的,新的内容。如何应该我在管理这个文件?
您是否使用完整路径? –
是的,我是。就路径而言,任何情况的唯一区别是用反斜杠和正斜杠代替,但这没有什么区别。 – regularfry