Installation 将我的应用程序安装到本地应用程序数据文件夹是否存在缺陷?

Installation 将我的应用程序安装到本地应用程序数据文件夹是否存在缺陷?,installation,nsis,administrator,Installation,Nsis,Administrator,目前,我正在计划为非管理员用户销售的.NET应用程序的安装过程更加顺畅(读:“可能”),我偶然发现了谷歌Chrome和微软SkyDrive等应用程序: 它们似乎没有安装到通常的“程序文件”文件夹中,而是安装到当前用户的“本地应用程序数据”文件夹中 由于此文件夹是基于每个用户的,因此它对于当前用户是可写的,并且无需管理权限即可写入 我已经成功地将NSIS设置更改为正常工作并安装到此文件夹中,但我仍然不确定这是否是一种良好的做法,并且可能存在缺点 我的问题是: 对于为什么要安装或不安装到“本地应用程

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

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

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

我已经成功地将NSIS设置更改为正常工作并安装到此文件夹中,但我仍然不确定这是否是一种良好的做法,并且可能存在缺点

我的问题是:

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


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

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

我知道我喜欢以非管理员身份安装的应用程序,至少你知道该应用程序不需要驱动程序,或者它会以其他方式干扰机器配置

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

  • RequestExecutionLevel最高
  • 添加一个带有两个单选按钮的自定义页面(只有我和所有用户),如果用户不是管理员(
    UserInfo
    plugin),则灰显机器范围的选项
  • 根据安装模式设置
    $Instdir
    SetShellVarContext
  • 使用
    SHCTX
    作为注册表HKEY

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

谢谢,@Anders-不高兴的管理员也是我唯一能想象的事情,我在安装java应用程序时也遇到过问题,因为路径有时会超出好的ole 260字符限制。