gpt4 book ai didi

windows-7 - Nullsoft installer,Win7,如何安装读/写数据目录?

转载 作者:行者123 更新时间:2023-12-04 06:19:59 24 4
gpt4 key购买 nike

我们创建了一个安装程序 (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 策略? (我们不应该在那里安装它们吗?)

最佳答案

如果你依赖于写入 %ProgramFiles%,你的程序在每个版本的 WinNT 上基本上都被破坏了,你只是没有以非管理员身份进行测试!

如果您想允许每个人对文件或文件夹进行写访问,请使用 Access Control plugin .这样做你会放弃一点安全性。为降低风险,请确保数据文件存储在子目录中(%ProgramFiles%\MyApp\Data 或类似目录),并且不要授予普通用户对 .exe 或 .dll 文件夹的写访问权限。

您真正应该做的是在您的程序首次运行时将文件从 %ProgramFiles% 复制到 %AppData%,这样每个用户都可以获得自己的设置,并且没有安全问题。

关于windows-7 - Nullsoft installer,Win7,如何安装读/写数据目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6709312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com