gpt4 book ai didi

ruby - Program Files下的文件具有 split 人格

转载 作者:可可西里 更新时间:2023-11-01 10:08:23 25 4
gpt4 key购买 nike

我有一个 Ruby 应用程序,我正在使用 NSIS 构建的安装程序在 Windows 7 的 Program Files 下安装(连同打包的 ruby​​ 解释器)。为了调试它,我编辑了其中一个文件以添加一些调试语句。之后,我卸载了软件包并运行了新版本的安装程序,其中包含已编辑文件的新副本,没有调试语句。

现在,我无法将新副本加载到 ruby​​ 中。如果我运行 type <filename>在 cmd.exe 中,或在 Notepad.exe 或 Firefox 中打开文件,我看到了新版本。如果我运行 ruby -e "puts File.read('<filename>')" , 或者在 emacs 中打开文件,我看到的是旧版本。

如果在 Windows 资源管理器中,我将文件复制到一个新文件名,那么所有内容都可以看到该文件名下的新内容。如果我删除原始文件并重命名副本以替换原始文件, split 人格就会返回。

这种情况在重新启动后仍然存在,因此文件被意外打开并不是一件简单的事情。

这到底是怎么回事?安装过程中是否有某些方面可能会以我可以恢复的方式检查文件,或者至少在我调试安装程序时关闭?

更新

如果我运行 ruby -e "puts File.read('<filename>')"在以管理员身份运行的控制台中,我看到了正确的新内容。我应该如何管理这个文件?

最佳答案

我认为这与 UAC 文件系统虚拟化有关。检查你的文件是否存在于C:\Users\<username>\AppData\Local\VirtualStore中.如果存在,请将其从 VirtualStore 中删除。

您在运行管理员控制台时看到正确文件的事实证明这是因为虚拟化:UAC 虚拟化已为提升的进程关闭。

关于ruby - Program Files下的文件具有 split 人格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com