我的应用程序当前将文件写入其安装目录,这意味着Program Files不是一个有效的选项(我知道这不是理想的选择)。但我也希望我的安装程序(Inno)不要求管理员权限,即没有UAC;我认为Google Chrome会这样做。
考虑到这两个限制,哪个常见位置默认有意义?
答案 0 :(得分:2)
如果您确实想要制作不需要管理员权限的每用户安装程序,请使用正确的设置:
[Setup]
PrivilegesRequired=lowest
DefaultDirName={userpf}\YourAppName
请注意(解决Glytzhkof的问题)这是一个本地文件夹,而不是漫游文件夹。如果您希望设置漫游,那么您仍然需要您的应用程序将它们保存在{您的语言相当于{userappdata}\YourAppName
文件夹中。无论如何,用户必须在他们打算使用它的每台机器上单独安装软件(但这通常是最好的选择)。
制作每用户应用程序的一些缺点是:
安装时无法使用管理员权限。特别是这意味着您无法安装许多您可能希望在应用程序中使用的其他组件(运行时,库等)。您也无法使用regserver
和restartreplace
等功能。 (这并不一定意味着你仍然不能使用这些组件,只是如果用户还没有安装它们就会有更大的麻烦。)
如果一台计算机有多个用户(通常用于家庭和某些工作场所),那么他们将拥有应用程序的重复独立副本,每个用户都必须单独升级。这特别令IT部门感到厌烦,因为他们更喜欢进行集中升级,如果你的应用程序很大,可能会浪费磁盘空间。
如果您不想创建基于{pf}
的普通应用程序的原因只是您想要延迟并将设置文件存储在程序的文件夹中,那么重新考虑此决定可能会更好。 “正确”做起来并不难。
答案 1 :(得分:1)
基本上有3种类型的文件: 1:用户数据, 2:应用程序设置, 3:二进制文件。除了一些例外。我假设Harry建议使用配置和设置文件写入用户的应用程序数据文件夹,而不是整个应用程序。不要在这里放置二进制文件或数据,但请在此处保存设置文件。
" 漫游文件"的全部概念在我看来,这是一个坏主意。当人们让多台计算机同时登录多个计算机时,它会阻塞您的用户配置文件并在每台计算机上增加登录时间并导致各种同步问题。在我看来,整个漫游概念仅在理论上有效 - 但它依赖于用户规则和数据管理中的应用程序质量。如果应用程序良好,很少编辑和合并的文件可以工作。我已经看到它适用于拼写检查自定义词典和类似。真正的解决方案是具有后端数据库的客户端/服务器应用程序,用于持久设置。其他所有东西最终都会失败 - 如果它是一个可能无关紧要的轻量级应用程序。
用户数据应保存到" 我的文档"位置仅。并且只有少数配置设置应该漫游。如果网络设置为允许"我的文档"漫游,系统管理员应立即拍摄:-)。无论用户登录的计算机是什么,它都必须是可访问的服务器共享。
我已经从手柄上飞了出来,回答了太多你没有问过的问题。只是讨厌看到人们前往他们可能不知道的问题。如果你有一个超级小的应用程序,基本上是'便携式"正如我们在部署中所说的那样。这意味着一个应用程序,您可以在USB记忆棒上运行单个文件夹,然后将所有内容保存在用户数据中,并使用单个设置文件和二进制文件保持应用程序小巧轻便。不需要UAC或管理员权限。