Как применить разрешения для папок в WiX, сохранив существующие разрешения, но без рекурсии? - PullRequest
0 голосов
/ 14 марта 2012

Следующее будет применять (изменять) разрешения рекурсивно и уважать текущие разрешения:

<util:PermissionEx User="[MYUSER]" Domain="[NT_DOMAIN]" GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes" />

Но я не хочу применять это рекурсивно!

Я хочу, чтобы это было без рекурсии, т. Е. Только эта папка и никаких детей.

(Я полагаю, что более старый элемент очищает наследование разрешений из родительской папки, что означает, что он не подходит для моих целей, так как я должен сохранить существующие разрешения).

Есть ли способ сказать PermissionsEx не применять разрешения рекурсивно? Могу ли я каким-то образом объединить узлы PermissionEx и Permission, чтобы получить желаемый эффект? Или мой единственный вариант - вызвать вызов командной строки cacls.exe из командной строки?

1 Ответ

0 голосов
/ 14 марта 2012

Я не уверен, что какой-либо из трех встроенных шаблонов (два от MSI и один от расширения WiX) справятся с этим сценарием. FWIW, я думаю, что это не функция объекта, для которого вы устанавливаете разрешения, а функция всех дочерних объектов, которые были выбраны для наследования. Другими словами, родитель не обязывает к распространению, когда дети переходят в наследство.

Так что вам, возможно, придется поразмышлять над всеми детьми, а затем настроить их на блокирование распространения. Усилие и риск высоки, поэтому я удивляюсь, почему это действительно необходимо, и если вы не можете просто создать свой собственный дочерний каталог и установить разрешения таким образом, чтобы вам не пришлось беспокоиться об этой проблеме.

...