我尝试使用 Inno Setup 为我的程序进行设置。
我在 .exe 所在的文件夹中安装了更多 XML 文件。安装工作正常,但是当我运行程序并修改 XML 时,该文件保存在另一个位置,而不是 .exe
的文件夹中,我找不到它。我认为该文件存储在 PC 中,因为程序可以毫无问题地打开它。
我还尝试使用 InstallAware Express 7 进行相同的设置,效果很好。 Io 我认为这不是我的 exe 的问题,而是 Inno Setup 的问题。
谢谢
请您参考如下方法:
我认为您是 Windows 文件虚拟化的受害者。
您可能将数据文件安装到 Program Files
文件夹中。
该文件夹不可写(除非您的程序以提升的权限运行)。如果你的程序没有application manifest ,Windows 认为它是一个遗留应用程序,不知道它无法写入Program Files
并启用文件虚拟化。因此,当您的应用程序尝试写入数据/XML 文件时,Windows 会将写入(以及将来的读取)重定向到虚拟存储 (C:\Users\username\AppData\Local\VirtualStore
)。 Program Files
中的实际文件不会被修改。
很难回答为什么它可以与 InstallAware Express 配合使用。如果您在 Inno Setup 后尝试过,结果可能会受到虚拟存储中该文件是否存在的影响。
无论如何,根本原因是您的应用程序尝试将文件写入Program Files
。那是错误的。任何应用程序都不应写入Program Files
。
另请参阅Application does not work when installed with Inno Setup .