2016-09-27 118 views
1

我尝试使用Inno Setup为我的程序进行设置。安装了Inno Setup的应用程序将文件写入未知位置而不是安装文件夹

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

我也尝试使用InstallAware Express 7进行相同的设置,它运行良好。 Io我认为这不是我的exe中的问题,但在Inno Setup中。

感谢

回答

0

我认为你是Windows文件虚拟化的牺牲品。

您可能会将数据文件安装到Program Files文件夹中。

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

这很难回答,它为什么与InstallAware Express协同工作。如果您在Inno安装程序之后尝试过,则结果可能会受到虚拟存储中文件存在的影响。

无论如何,根本原因是您的应用程序尝试写入Program Files中的文件。这是错误的。没有应用程序应该写入Program Files

+0

那么你认为这个问题是不是在安装程序的EXE内? – user2377071

+0

我相信,你的EXE不是按现代版本的Windows标准构建的。 –

+0

非常感谢你 – user2377071

相关问题