Wix 安裝部署教程(七) 獲取管理員權限


    應用程序運行的時候,難免會讀寫文件,產生新的數據。但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。安裝完圖標多了一個標志。

  應該還有更好的辦法或者思路,路過朋友還請賜教。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM