分享

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

 兰亭文艺 2023-05-14 发布于加拿大

    应用程序运行的时候,难免会读写文件,产生新的数据。但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。安装完图标多了一个标志。

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多