我的应用是通过NSIS安装的。

我希望安装程序为所有用户安装程序。

我可以通过安装到'program files'目录来实现这一目的。

有一个数据库文件(firebird),系统上的所有用户帐户都应共享。

如果我将此数据库文件存储在“程序文件”目录中,它将是只读的。

如果我将它存储在用户的APPDATA目录中,当一个用户添加其他人看不到的数据时,他们每个都会有一个不同的副本。

选项1 - 在我的app目录下的'program files'下创建一个'Data'目录,在我的安装程序中使所有人都能读写这个dir,这样用户'程序文件'的虚拟化就不会启动了用户可以更新文件并查看彼此的更改。

还有其他选择吗?

有帮助吗?

解决方案

所有用户的数据应存储在%ALLUSERSPROFILE%中,或使用参数CSIDL_COMMON_APPDATA调用SHGetFolderPath()以获取所有用户存储区域。

请参阅 http://www.deez.info / sengelha / 2006/02/28 / windows-vista-changes / 了解更多详情。

其他提示

所有用户个人资料下的某个地方将是明显的位置。我认为默认情况下有一些关于谁可以读/写的规则,但MS文档建议您是否需要不同的东西来创建子目录并在安装程序中设置ACL。

具体来说我会用:

SetShellVarContext all
SetOutPath $APPDATA
File "MyInsecurelySharedFile.txt"

有关详细信息,请参阅 NSIS脚本参考

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top