InstallShield安装包在Win7下权限问题的解决方案

众所周知,win7下的权限问题很让人头疼,最近在用InstallShield给AliProbe打包的时候,同样在win7下遇到了问题。主要的限制是:在安装目录下不能创建文件以及执行任何的写操作。这个问题给程序的正确执行以及后期的更新都带来了不小的困难,为了解决这个限制,尝试了下面几种方案。

        1.更换写文件的目录

        方法:将AliProbe需要写的文件都放在系统盘 用户的“Local Settings /Application Data”目录下。 这是一种常用的方法,软件的配置信息都存放在这个目录,没有权限的问题。

        缺点:此方法只是避开了软件安装目录的权限问题,遇到软件更新等需要安装目录写权限的操作,还是没办法。

        2.尝试向用户索取更高的权限

        方法:在编译程序的时候(VS 2008),配置mainfest文件的requestedPrivileges项为“requestedExecutionLevel level=”requireAdministrator””,这条语句是说软件只能运行在管理员权限下。有了管理员权限,操作当然不会受限了。

        缺点:运行AliProbe时,会弹出一个对话框,大意是说:“运行AliProbe需要管理员权限”,选择了同意才能继续运行。这种方式的用户体验比较差,而且用户会担心AliProbe运行在管理员权限下的安全性问题。

        3.降低安装目录的权限

        鉴于前两种方法的局限性,尝试新的解决方案。因为在win7下,安装软件都是在管理员权限下执行的,所以安装目录默认是管理员权限,如果可以在安装时设置安装目录的权限,权限问题就会迎刃而解。

        方法:InstallShield在打包的时候为我们提供了设置安装目录和文件权限的方法。在Application Data的Files and Folders子项下的ProgramFilesFolder右键properties如图:

点Permissions:

在Names下右键New

选择everyone改为任何人都可以操作即可

原文地址:https://www.cnblogs.com/hzcya1995/p/13318216.html