2011-12-02 116 views
0

我正在使用wix安裝服務。我也使用CreateFolder創建一個目錄。該服務在啓動時檢查該目錄是否存在。wix serviceinstall目錄權限

由於權限問題,該服務無法檢查目錄的存在。因此它失敗了。

任何人都可以請告訴我如何確保在創建目錄時給予適當的權限以便服務成功。

這裏的服務安裝和啓動代碼:

<ServiceInstall Id="MyServiceInstaller" 
        Type="ownProcess" 
        Vital="yes" 
        Name="MyService" 
        DisplayName="MyService" 
        Description="MyService" 
        Start="auto" 
        Account="LocalSystem" 
        ErrorControl="normal" 
        Interactive="no"> 

     <ServiceDependency Id="Winmgmt"/> 

     <util:PermissionEx User="Everyone" 
          GenericAll="yes" 
          ServiceChangeConfig="yes" 
          ServiceEnumerateDependents="yes" 
          ChangePermission="yes" 
          ServiceInterrogate="yes" 
          ServicePauseContinue="yes" 
          ServiceQueryConfig="yes" 
          ServiceQueryStatus="yes" 
          ServiceStart="yes" 
          ServiceStop="yes"/> 

     <util:ServiceConfig FirstFailureActionType="restart" 
          SecondFailureActionType="restart" 
          ThirdFailureActionType="none" 
          ResetPeriodInDays="1"/> 
    </ServiceInstall> 

    <ServiceControl Id="MyServiceController" 
        Start="install" 
        Stop="both" 
        Remove="uninstall" 
        Name="MyService" 
        Wait="no"/> 

這裏是目錄創建代碼:

 <Directory Id="D_MYDIR" Name="Mydir"> 
     <Component Id="C_FolderCreate" Guid="{CCCCCCB1-47BC-44E9-AAAA-1E750E257086}"> 
     <CreateFolder> 
      <Permission GenericAll="yes" User="SYSTEM"/> 
      <Permission User="Users" Domain="[LOCAL_MACHINE_NAME]" GenericRead="yes" Read="yes" GenericExecute="yes" ChangePermission="yes" Delete="yes"/> 
     </CreateFolder> 
     </Component> 
    </Directory> 

非常感謝您的幫助:)

最好的問候, Marc

回答

2

也許你只需要設置權限LocalSystem用戶,因爲您設置了Account="LocalSystem",因此您的服務正在運行。

<Permission GenericAll="yes" User="LocalSystem"/>