像 Google Chrome 这样在 AppData 中安装程序有什么优势?
-
09-06-2019 - |
题
我刚刚注意到在 Vista 和 XP 中,Chromium 都安装在 AppData 中。如果谷歌这样做并且其他应用程序这样做,那是因为存在某种形式的保护吗?我们是否应该编写与 Google 功能相同的安装程序?
解决方案
Windows 仍然缺乏针对每用户安装的约定。
- 当安装程序询问是否为当前用户或所有用户安装时,它实际上仅指快捷方式的放置(“开始”菜单;桌面)。实际的应用程序文件仍然在系统范围内
%PROGRAMFILES%
. - 微软自己的 ClickOnce 通过创建一个完全非标准的解决方案来解决这个问题
%USERPROFILE%\Local Settings\Apps
(%USERPROFILE%\AppData\Roaming
在 Vista / Server 2008 上)目录,其中包含程序文件和配置数据。
(我不明白为什么 Microsoft 不能在 Vista 中添加每用户的 Program Files 目录。例如,在 OS X 中,您可以创建一个 ~/Applications
, ,Finder 会给它一个合适的图标。CrossOver 和 Adobe AIR 等应用程序会自动使用该功能,默认为每用户应用程序。因此,不存在权限问题。)
你可能会做什么 应该 做:如果用户不是admin,则安装在用户目录下;如果他们这样做,请给他们两种选择。
其他提示
无人提及的一项优点是静默自动更新。Chrome 有一个始终运行的更新程序进程,可以立即更新您的 Chrome 安装。
我认为他们的用例是非标准的。他们需要一种尽快修复漏洞问题的方法(因为它是浏览器)。等待管理员批准全公司范围内的每一个更新是不够的。
据我所知,Chrome 安装到 Application Data 文件夹的唯一原因是为了让非管理员用户可以安装它。
Chrome 安装程序目前不允许用户选择应用程序的安装位置。不要这样做 - 相反,让用户在每个用户(如应用程序数据)和计算机范围(程序文件)安装之间进行选择。
Windows 7 和 Windows Installer 5.0 现在提供真正的每用户安装功能。
http://msdn.microsoft.com/en-us/library/dd408068%28VS.85%29.aspx
在 Vista 和 XP 中,您可以使用 ~/AppData/Local 或类似 Chrome 的类似工具来修改它。Microsoft 自己将其用于 ClickOnce 安装程序。
因此,至少在 Windows 7 及更高版本上,解决方案很简单。
坦率地说,我还没有看到第一个真正允许每用户和每台机器安装的安装程序。许多安装程序在其 GUI 中提供此选项,但该设置仅影响快捷方式等的位置。go - 二进制文件始终位于 %ProgramFiles%。
事实上,至少可以说,创建允许两种安装的 Windows Installer 软件包相当困难。随着UAC的出现,我想说这是不可能的:每用户安装不得要求抬高,每台机器安装则必须。但是 MSI 包是否需要提升是通过摘要信息流中的位来控制的 - 用户输入无法对此产生影响。
按用户还是按机器是更好的选择很大程度上取决于应用程序。然而,对于小软件包,我倾向于按用户安装。除了不需要 UAC 提示符或运行路径而对用户更加友好之外,它们还向用户发出信号,表明该设置不会对计算机造成太大损害(假设他是非管理员)。
除了每个用户之外,Chrome 安装程序确实应该允许全局安装(带有提升)。我不想为每个用户维护安装;我希望能够集中管理升级等。Chrome 不允许这样做。
也就是说,按用户安装的选项非常好,因为这意味着没有权限问题。
众所周知,Google 创建了一个 MSI 安装程序,用于全局系统安装和管理。它位于这里:
我在 Win7 上的 %PROGRAMFILES% 中没有看到任何内容。看起来必须为计算机上的每个用户安装 Chrome。
也许这样做的真正原因是伪造 Chrome 安装数量的几倍!从而使其成为世界上第一个浏览器!