我们创建了一个安装程序(Nullsoft Install System v2.46)来安装应用程序,以及一些(嵌套的)数据目录,其中包括从已安装的应用程序读取/写入访问的(文本)数据文件。
在 WinXP 上一切正常:应用程序加载,并且可以从嵌套在安装目录下的数据目录读取/写入文件。
但是,在 Win7/64 上安装时,作为安装一部分创建的数据目录是只读的。因此,应用程序加载数据文件,但无法覆盖它们(因为它们位于安装目录下的只读数据目录中)。
是的,因为这是 Win7-64 位,数据目录恰好位于:
C:\Program Files (x86)\MyApp\MyDataDir0
我了解 Win7 的安装策略比以前的 WinOS 更严格(出于安全原因)。
问题:在安装过程中,我们应该使用什么机制来确保这些数据目录是读/写的,并且其中的(文本)数据文件也是读/写的?
这些数据文件不是用户特定的,它们暗示程序运行所需的数据。(没有它们,程序就毫无用处。)从逻辑上讲,它们是“程序系统”文件,尽管我们可以合理化它们代表程序使用的“可扩展数据集”(因此它们必须是读/写的)。
为了简单和一致,我们真的宁愿用安装程序解决这个问题,而不是从程序中更改目录/文件权限。我们希望这些数据存在于安装应用程序的位置,而不是某些C:/Users/Default/
. 或C:/ProgramData/MyApp/.
目录。
我们对 data-dirs-under-app-install-dir 的“读/写”兴趣是否违反 Win7 策略?(我们不应该在那里安装它们吗?)