Je sais comment définir les autorisations pour un dossier:
<DirectoryRef Id="ProgramFilesFolder">
<Directory Id="PHPFolder" Name="PHP">
<Component Id="PHP_comp" DiskId="1" Guid="*">
<CreateFolder>
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
Cependant, j'ai également besoin que les autorisations soient appliquées à tous les sous-dossiers. Est-ce possible sans lister tous les dossiers?
Tout d'abord, je vous recommanderais d'utiliser PermissionEx à la place. C'est une extension WiX standard et elle a un avantage vraiment énorme par rapport à l'autorisation - elle n'écrase pas, mais modifie les ACL. Et par défaut, il applique des autorisations au dossier et à tous ses fichiers et dossiers descendants, vous n'avez donc rien à ajouter.
J'espère que cela t'aides.
J'ai résolu: différents PermissionEx sont définis dans le schéma Wix et Util ( Wix PermissionEx et til Extension PermissionEx )
J'ai utilisé la version Util:
<Wix xmlns="http://schemas.Microsoft.com/wix/2006/wi" xmlns:util="http://schemas.Microsoft.com/wix/UtilExtension">
<CreateFolder Directory="DirectoryToManage"> <util:PermissionEx User="Users" GenericAll="yes" /> </CreateFolder>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="INSTALLFOLDER_Permission" Guid="*">
<CreateFolder>
<util:PermissionEx User="Users" GenericAll="yes"/>
</CreateFolder>
</Component>
</DirectoryRef>
La réponse ci-dessus est correcte et vous définirez les autorisations pour tous les dossiers et fichiers de ce dossier.
Remarque: la balise CreateFolder doit se trouver dans un composant et ce composant doit être ajouté à une fonctionnalité.
En outre, vous devez l'ajouter à la ligne de commande du compilateur et l'éditeur de liens:
-ext WixUIExtension -ext WixUtilExtension