我正在使用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>
非常感谢您的帮助:)
最诚挚的问候, 马克
答案 0 :(得分:2)
也许你只需要为LocalSystem用户设置权限,因为那是你设置Account="LocalSystem"
以后你的服务运行的用户。
<Permission GenericAll="yes" User="LocalSystem"/>