5

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

它们似乎没有安装到通常的“程序文件”文件夹中,而是安装到当前用户的“本地应用程序数据”文件夹中。

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

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

我的问题是:

您对为什么安装或不安装到“本地应用程序数据”文件夹有任何建议吗?

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

4

1 回答 1

5

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

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

有些人喜欢进行机器范围的安装,并且在 NSIS 中给用户这个选项并不难:

  • RequestExecutionLevel highest
  • 添加一个带有两个单选按钮(只有我和所有用户)的自定义页面,如果用户不是管理员(UserInfo插件) ,则将机器范围的选择变灰
  • 设置$InstdirSetShellVarContext基于安装模式
  • SHCTX用作注册表HKEY

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

于 2012-06-19T08:42:03.247 回答