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

时间:2016-09-27 07:38:47

标签: inno-setup

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

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

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

由于

1 个答案:

答案 0 :(得分:1)

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

您可能会将数据文件安装到 Model.find({},null,{limit:2,skip:20},function(err,data){ //console.log(data) }) 文件夹。

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

很难回答,为什么它适用于InstallAware Express。如果您在Inno Setup之后尝试过,结果可能会受到虚拟商店中文件存在的影响。

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