stoneniqiu

Wix 安装部署教程(七) 获取管理员权限

2014-09-19 15:51  stoneniqiu  阅读(2405)  评论(4编辑  收藏  举报

    应用程序运行的时候,难免会读写文件,产生新的数据。但Program Files下的文件是不能随便更改,Win7下如果没有权限,将会被拒绝。我现在有两种方式,一种是将数据路径移到Program Data目录下,一个是给文件赋予权限。

ProgramData

<Directory Id="CommonAppDataFolder">
        <Directory Id="YourFolder" Name="YourFolder">
         <Directory Id=\'dirC9846820F5B48BC9EAD9F647E841B025\' Name=\'DemoProject\' >
              <Directory Id=\'dirF6068DAA29DBB05A7EAD1E3B5A48BBEE\' Name=\'Data\' />
              <Directory Id=\'dir10737BF4DF605200AA7B844D908DAED9\' Name=\'GraphicPages\' />
              <Directory Id=\'dir16D2B386B2034B9488996466AAAE0B57\' Name=\'History\' />
              <Directory Id=\'dirBE8545AE7AB0276E15898AAE7ACFBD7A\' Name=\'Resource\' />
            </Directory>
        </Directory>
      </Directory>

当然这种方式你的应用程序路径要支持。

 

获取文件夹读写权限

 

 <DirectoryRef Id=\'dirB59C44B238E764B86C6DFC0A8045E3FA\' >
      <Component Id=\'cmpB59C44B238E764B86C6DFC0A8045E3FA\' Guid=\'BDAA4089-F7C0-42E8-928E-B81901938FCD\' KeyPath=\'yes\' >
       
        <CreateFolder Directory="dirB59C44B238E764B86C6DFC0A8045E3FA">
           <Permission User="SYSTEM" GenericAll="yes"/>
           <Permission User="EveryOne" GenericAll="yes"  GenericRead="yes" Read="yes" ReadAttributes="yes"  GenericExecute="yes" TakeOwnership ="yes"  GenericWrite ="yes"    WriteAttributes="yes" ReadPermission ="yes"   ChangePermission="yes" />
           <Permission User="Users" Domain="[LOCAL_MACHINE_NAME]"  GenericRead="yes" Read="yes" ReadAttributes="yes"  GenericExecute="yes" TakeOwnership ="yes"  GenericWrite ="yes"    WriteAttributes="yes" ReadPermission ="yes"   ChangePermission="yes"/>
          
        </CreateFolder>
      </Component>
    </DirectoryRef>

这个需要应用WixUtilExtension.dll ,Wix命名空间也要加上: xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >

  开始没有加EveryOne,还是不能保存,加了才ok。安装完图标多了一个标志。

  应该还有更好的办法或者思路,路过朋友还请赐教。

 

分类:

技术点:

相关文章: