我们为我们的应用程序使用Wix 3.5创建了一个安装程序。我们的应用程序用户在Common Application Data Folder中有现有数据,我们希望“修复”这些权限,以便我们的用户不再需要成为他们PC上的管理员。
因此,在安装过程中,我将以下部分添加到Wix项目中,以便修改我们的文件夹权限。这适用于新用户,但这些文件夹中的任何现有文件仍保留旧ACL,不允许非管理员用户读取/修改它们。
<Directory Id="CommonAppDataFolder">
<Directory Id="CommonAppOurCompany" Name="OurCompany">
<Directory Id="MODELLIBPATH" Name="Library">
<Component Id="LibraryUserPermissions" Guid="12BC499B-4601-449F-9515-4C58A8F29603">
<CreateFolder>
<util:PermissionEx GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes" User="Users" Domain="[MachineName]"/>
</CreateFolder>
</Component>
</Directory>
</Directory>
</Directory>
如何以递归方式将新ACL应用于文件夹及其子文件夹中的每个文件,而不删除或修改文件(安全设置除外)?
答案 0 :(得分:0)
通常,安装程序会创建并设置权限,以便新的文件夹和文件将继承。在您的情况下,您需要编写一个自定义操作来调用cacls或类似的来递归结构并应用权限。据我所知,在MSI或WiX中没有内置功能。</ p>