Inno setup 使用Inno安装程序安装的应用程序将文件写入未知位置,而不是其安装文件夹

Inno setup 使用Inno安装程序安装的应用程序将文件写入未知位置,而不是其安装文件夹,inno-setup,Inno Setup,我尝试为我的程序使用Inno setup进行设置 我在与.exe相同的文件夹中安装了更多的XML文件。安装工作正常,但是当我运行程序并修改XML时,文件保存在另一个地方,而不是.exe的文件夹中,我找不到它。我认为该文件存储在PC中,因为程序可以毫无问题地打开它 我还尝试使用InstallAware Express 7进行相同的设置,效果很好。Io我认为这不是我的exe中的问题,而是Inno设置中的问题 谢谢我认为您是Windows文件虚拟化的受害者 您可能将数据文件安装到程序文件文件夹中 该文

我尝试为我的程序使用Inno setup进行设置

我在与.exe相同的文件夹中安装了更多的XML文件。安装工作正常,但是当我运行程序并修改XML时,文件保存在另一个地方,而不是
.exe
的文件夹中,我找不到它。我认为该文件存储在PC中,因为程序可以毫无问题地打开它

我还尝试使用InstallAware Express 7进行相同的设置,效果很好。Io我认为这不是我的exe中的问题,而是Inno设置中的问题


谢谢

我认为您是Windows文件虚拟化的受害者

您可能将数据文件安装到
程序文件
文件夹中

该文件夹不可写(除非您的程序以提升的权限运行)。如果您的程序没有,Windows会将其视为一个遗留应用程序,它不知道自己无法写入
程序文件
,并启用文件虚拟化。因此,当应用程序尝试写入数据/XML文件时,Windows会将写入(以及将来的读取)重定向到虚拟存储(
C:\Users\username\AppData\Local\VirtualStore
)。
程序文件
中的实际文件不会被修改

很难回答为什么它与InstallAware Express一起工作。如果在Inno安装后尝试,结果可能会受到虚拟存储中存在文件的影响

无论如何,根本原因是应用程序试图将文件写入
程序文件
。那是错误的。任何应用程序都不应写入
程序文件

另见