Wix: Как установить разрешения для папки и всех вложенных папок - PullRequest
38 голосов
/ 25 ноября 2010

Я знаю, как установить разрешения для папки:

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

Однако мне нужно, чтобы разрешения также применялись ко всем подпапкам.Это возможно без перечисления всех папок?

Ответы [ 3 ]

38 голосов
/ 25 ноября 2010

Прежде всего, я бы порекомендовал вам использовать PermissionEx .Это стандартное расширение WiX, и оно имеет одно действительно огромное преимущество перед разрешением - оно не перезаписывает, а модифицирует ACL.И по умолчанию он применяет разрешения к папке и всем ее дочерним файлам и папкам, поэтому вам не нужно указывать ничего лишнего.

Надеюсь, это поможет.

27 голосов
/ 04 декабря 2012

Я решил: разные PermissionEx определены в схеме Wix и Util ( Wix PermissionEx и Util 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>
18 голосов
/ 29 марта 2014
<DirectoryRef Id="INSTALLFOLDER">
        <Component Id="INSTALLFOLDER_Permission" Guid="*">
            <CreateFolder>
                <util:PermissionEx User="Users" GenericAll="yes"/>
            </CreateFolder>
        </Component>
    </DirectoryRef>

Ответ выше верен, и вы установите права доступа ко всем папкам и файлам в этой папке.

Обратите внимание: тег CreateFolder должен находиться в компоненте, и этот компонентбыть добавленным в Feature.

Кроме того, вы должны добавить это в командную строку компилятора и компоновщика:

-ext WixUIExtension -ext WixUtilExtension
...