在AppData中安装程序(例如Google Chrome)有什么优势?

时间:2020-03-05 18:48:44  来源:igfitidea点击:

我只是注意到Chromium已在Vista和XP的AppData中安装。如果Google这样做了,并且如果其他应用程序这样做了,那是不是因为某种形式的保护?我们是否应该编写与Google具有相同功能的安装程序?

解决方案

回答

据我所知,Chrome安装到Application Data文件夹中的唯一原因是非管理员用户可以安装它。

Chrome安装程序当前不允许用户选择应用程序的安装位置。相反,请不要这样做,而是让用户在每个用户(如App Data)和计算机范围(Program Files)安装之间进行选择。

回答

Windows仍缺乏针对每个用户的安装约定。

  • 当安装程序询问是为当前用户还是为所有用户安装时,它实际上仅指快捷方式放置("开始"菜单;桌面)。实际的应用程序文件仍位于系统范围的"%PROGRAMFILES%"中。
  • 微软自己的ClickOnce通过创建完全非标准的%USERPROFILE%\ Local Settings \ Apps目录(在Vista / Server 2008中为%USERPROFILE%\ AppData \ Roaming`)目录来解决此问题,该目录中包含程序文件和配置数据。

(我很茫然,为什么Microsoft不能在Vista中添加每个用户的Program Files目录。例如,在OS X中,我们可以创建一个〜/ Applications,Finder会为它提供一个适当的图标。 CrossOver和Adobe AIR等应用程序会自动使用该应用程序,默认为按用户使用的应用程序,因此不会出现权限问题。)

我们可能应该做的是:如果用户不是管理员,请安装在用户目录中;否则,请执行以下操作:如果他们这样做,给他们两个选择。

回答

Chrome安装程序确实应该允许除每位用户外进行全局安装(带有高程)。我不想为每个用户维护安装;我希望能够集中管理升级等。 Chrome浏览器不允许这样做。

也就是说,按用户安装的选项非常好,因为这意味着没有权限问题。

回答

坦白说,我还没有看到第一个真正允许按用户和按机器安装的安装程序。许多安装程序在其GUI中都提供了此选项,但是该设置仅影响快捷方式等的位置。-二进制文件始终指向%ProgramFiles%。

实际上,至少可以说,创建允许两种安装的Windows Installer软件包非常困难。随着UAC的到来,我想说这是不可能的:每个用户的安装都不需要提升,每个计算机的安装都必须加高。但是,通过摘要信息流中的某个位来控制MSI软件包是否需要提升高度-无法让用户输入对此产生影响。

更好的选择是按用户还是按计算机,这在很大程度上取决于应用程序。但是,对于小型软件包,我倾向于按用户安装。除了通过不需要UAC提示或者运行符而对用户更加友好之外,它们还向用户发出信号,表明该设置不会对计算机造成太大损害(假定他是非管理员)。

回答

Windows 7和Windows Installer 5.0现在提供了真正的按用户安装功能。

http://msdn.microsoft.com/zh-CN/library/dd408068%28VS.85%29.aspx

我们可以使用〜/ AppData / Local或者类似Chrome的等效软件在Vista和XP中对它进行修饰。 Microsoft本身将其用于ClickOnce安装程序。

因此,至少在Windows 7及更高版本上,解决方案很简单。