Wix:如何设置文件夹和所有子文件夹的权限

我知道如何设置文件夹的权限:

<DirectoryRef Id="ProgramFilesFolder"> <Directory Id="PHPFolder" Name="PHP"> <Component Id="PHP_comp" DiskId="1" Guid="*"> <CreateFolder> <Permission User="Everyone" GenericAll="yes" /> </CreateFolder> 

不过,我需要的权限也适用于所有子文件夹。 这可能与列出所有的文件夹?

首先,我会build议你使用PermissionEx来代替。 这是一个标准的WiX扩展,它有一个超过权限的巨大优势 – 它不覆盖,但修改ACL。 默认情况下,它将权限应用到文件夹及其所有后代文件和文件夹,因此您不必指定任何额外的内容。

希望这可以帮助。

我解决了:在Wix和Util模式( Wix PermissionEx和Util Extension PermissionEx )中定义了不同的PermissionEx,

我使用了Util版本:

  • 添加对WixUtilExtension程序集的引用
  • 将UtilExtension名称空间添加到Wix标记:
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
  • 指定Util PermissionEx版本:
 <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> 

上面的答案是正确的,您将设置对该文件夹中的所有文件夹和文件的权限。

但要注意的是:CreateFolder标签应该在一个组件中,并且这个组件需要被添加到Feature中。

此外,您必须将其添加到编译器链接器的命令行中:

 -ext WixUIExtension -ext WixUtilExtension