0

我构建了一个 Eclipse RCP 应用程序并使用 InnoSetup 将其打包。当我将打包的应用程序安装到默认目标 (C:\Program Files\XXX) 时,INI 文件中的 -data 参数被忽略(它设置为安装目录:-data C:\Program Files\XXX) . 相反,配置数据保存在用户的应用程序数据文件夹中。如果我将它安装到 C:\XXX,则 -data 参数会像宣传的那样工作,并且配置数据会保存在安装文件夹中。

如果我将应用程序的非打包版本复制到 C:\Program Files 下的文件夹中,有趣的是,与打包安装不同,-data 参数也被正确看待。

InnoSetup 脚本文件没有直接说明为配置数据设置目录,所以我认为这是 Eclipse RCP 的问题。此外,这里讨论的所有文件夹的写入权限对所有用户都是完整的。

为了强制 Eclipse RCP 将我的配置数据保存在我想要的位置,我会很高兴获得指向哪里的指针。

4

1 回答 1

1

默认情况下,不允许未提升的用户将文件写入 Program Files 或其任何子文件夹。虽然可以更改文件夹权限以允许这样做,但强烈建议不要这样做,因为 (a) 这不允许按用户记录设置,这通常是一项要求,即使起初您不认为这是, 和 (b) 允许对包含可执行文件的文件夹进行全局写入访问是等待发生的安全漏洞。如果您对仅包含数据文件的子文件夹执行此操作,则不太重要。但这仍然存在隐私和数据安全漏洞,因为现在系统上的任何用户(或网络用户)都可以查看和修改主要用户的数据。

如果应用程序没有标记包含所需权限的 Vista 兼容性清单(几乎无一例外应该是“asInvoker”),Vista 和 Win7 将自动将对只读 Program Files 子文件夹的访问重定向到用户 AppData 区域中的 VirtualStore 文件夹.

于 2012-09-27T20:27:14.803 回答