2011-12-02 111 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"/>