wix serviceinstall目录权限

时间:2011-12-02 15:10:57

标签: wix wix3 wix3.5

我正在使用wix安装服务。我也在使用CreateFolder创建一个目录。启动时的服务检查此目录是否存在。

由于权限问题,服务无法检查目录的存在。因此它失败了。

任何人都可以告诉我如何在创建目录时确保提供适当的权限,以便服务成功。

以下是服务安装和启动代码:

  <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>

非常感谢您的帮助:)

最诚挚的问候, 马克

1 个答案:

答案 0 :(得分:2)

也许你只需要为LocalSystem用户设置权限,因为那是你设置Account="LocalSystem"以后你的服务运行的用户。

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