我有一個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