Wix 工具集无法向安装目录中的用户授予权限

问题描述

我的应用程序在 appinstalldirectory\log 目录中使用 log4net 写入日志,但该应用程序无法创建日志目录和创建文件。这是因为在安全选项卡上,当前登录用户(Windows 10 中的本地管理员)未添加为对该文件夹具有完全访问权限的用户列表。

因此在 wix 安装程序中我创建了一个组件,如下所示

<CreateFolder>
    <util:PermissionEx
        GenericAll="yes"
        CreateFile="yes"
        User="[UserSID]"
        Domain="[%USERDOMAIN]"/>
    
    <!--<Permission 
        GenericAll="yes"
        CreateFile="yes"
        User="[UserSID]" 
        Domain="[%USERDOMAIN]"/>-->
</CreateFolder>

使用 PermissionEx 安装程序未完成并显示如下消息 https://i.stack.imgur.com/SiCbk.png

Image when PermissionEx is used

但是当使用时我得到如下错误 https://i.stack.imgur.com/AXNpO.png

Image when Permission is used

当我检查命令中的用户名时,我可以看到用户名 https://i.stack.imgur.com/KDVpC.png

Image of available user accounts

有人可以指出我有什么问题或我该怎么办吗?我不想不断修改每个系统并授予当前用户完全访问权限,以便我的应用程序可以写入日志。

解决方法

使用用户名,而不是 SID

<CreateFolder>
    <util:PermissionEx
        GenericAll="yes"
        CreateFile="yes"
        User="[LogonUser]"
        Domain="[%USERDOMAIN]"/>
</CreateFolder>