我的应用是通过NSIS安装的。
我希望安装程序为所有用户安装程序。
我可以通过安装到'program files'目录来实现这一目的。
有一个数据库文件(firebird),系统上的所有用户帐户都应共享。
如果我将此数据库文件存储在“程序文件”目录中,它将是只读的。
如果我将它存储在用户的APPDATA目录中,当一个用户添加其他人看不到的数据时,他们每个都会有一个不同的副本。
选项1 - 在我的app目录下的'program files'下创建一个'Data'目录,在我的安装程序中使所有人都能读写这个dir,这样用户'程序文件'的虚拟化就不会启动了用户可以更新文件并查看彼此的更改。
还有其他选择吗?
答案 0 :(得分:4)
所有用户的数据应存储在%ALLUSERSPROFILE%中,或使用参数CSIDL_COMMON_APPDATA调用SHGetFolderPath()以获取所有用户存储区域。
有关详细信息,请参阅http://www.deez.info/sengelha/2006/02/28/windows-vista-changes/。
答案 1 :(得分:3)
所有用户个人资料下的某个位置将是明显的位置。我认为默认情况下有一些关于谁可以读/写的规则,但MS文档建议您是否需要不同的东西来创建子目录并在安装程序中设置ACL。
答案 2 :(得分:0)
答案 3 :(得分:0)
具体来说我会用:
SetShellVarContext all
SetOutPath $APPDATA
File "MyInsecurelySharedFile.txt"
有关详细信息,请参阅NSIS Scripting Reference。