将我的应用程序安装到Local Application Data文件夹中有缺点吗?

时间:2012-06-19 07:47:05

标签: installation nsis administrator

目前正在计划为.NET应用程序安装过程我为非管理员用户销售更顺畅(读取:“可能”),我偶然发现了Google Chrome和Microsoft SkyDrive等应用程序:

它们似乎没有安装到通常的“Program Files”文件夹中,而是安装到当前用户的“Local Application Data”文件夹中。

由于此文件夹是基于每个用户的,因此它对于当前用户是可写的,并且不需要管理权限来写入。

我已设法更改我的NSIS设置以正常工作并安装到此文件夹中,但我仍然不确定这是否是一个好的做法,可能有缺点。

我的问题是:

您是否有关于为何要安装或不安装到“本地应用程序数据”文件夹中的建议?

(我希望这个问题与编程有关,足以保留在这里)

1 个答案:

答案 0 :(得分:5)

您的问题并不清楚,但您应该在$ LocalAppdata \ Programs中安装该程序,而不仅仅是$ LocalAppData(Win7中的FOLDERID_UserProgramFiles常量)

我知道我喜欢可以作为非管理员安装的应用程序,至少你知道应用程序不需要驱动程序,或者它在其他方面与机器配置混淆。

有些人更喜欢在机器范围内进行安装,并且在NSIS中为用户提供此选项并不难:

  • RequestExecutionLevel highest
  • 如果用户不是admin(UserInfo插件)
  • ,请添加一个带有两个单选按钮(Just Me和All Users)的自定义页面,并使机器范围内的选项变灰。
  • 根据安装模式设置$InstdirSetShellVarContext
  • 使用SHCTX作为注册表HKEY

一些IT人员/域管理员可能不满意,如果他们的用户可以安装东西,这是我能想到的唯一负面因素,但他们应该正确锁定系统,如果他们认为这是一个问题恕我直言......