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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wix:如何设置文件夹和所有子文件夹的权限相关的知识,希望对你有一定的参考价值。

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

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

但是,我还需要将权限应用于所有子文件夹。是否可以列出所有文件夹?

答案

首先,我建议你改用PermissionEx。它是一个标准的WiX扩展,它比Permission有一个非常大的优势 - 它不会覆盖,但会修改ACL。默认情况下,它会将权限应用于文件夹及其所有后代文件和文件夹,因此您无需指定任何额外内容。

希望这可以帮助。

另一答案

我解决了:在Wix和Util架构中定义了不同的PermissionEx(Wix PermissionExUtil Extension 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标记应位于组件中,并且必须将此组件添加到功能部件中。

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

-ext WixUIExtension -ext WixUtilExtension

以上是关于Wix:如何设置文件夹和所有子文件夹的权限的主要内容,如果未能解决你的问题,请参考以下文章

Wix:使用permissionEx设置安装文件夹中文件夹的权限

在wix的子文件夹中添加所有项目

如何在 WIX 中的包的安装条件中使用可执行文件的退出代码

如何控制共享文件夹与里面的子文件夹访问权限

WiX工具集:安装具有特定权限的文件

如何在 PHP 中为文件夹及其所有子文件夹和文件设置 chmod? [复制]