2

我的 WIX 安装程序的组件中有这个位

    <util:User Id="CIUSER" CreateUser="yes" UpdateIfExists="no" Name="myuser" PasswordNeverExpires="yes" Password="noneofyourbusiness">
      <util:GroupRef Id="Users" />
    </util:User>

我还在代码的其他部分使用它作为参考来设置目录权限。

每次安装我的产品时,似乎都会创建一个新的用户配置文件。因此,如果任何 id 放置在桌面上,以该用户身份登录,从安装到安装都看不到它。

在大多数情况下,我只是在安装程序中有这个代码来帮助设置我们系统的人。这是一个桌面应用程序,但它作为单个“设备”出售,不是通用计算机,我们正在创建一个非特权帐户来执行我们的应用程序。

这是 WIX 3.5。任何人以前见过这样的事情或知道我可能做错了什么?

它可以很好地创建用户并设置适当的权限,现在 Windows 7 中的用户下仅存在多个配置文件。

4

1 回答 1

4

设置RemoveOnUninstall属性为no,默认为yes。您实际上是在每次安装时创建一个新用户,因此配置文件是不同的。

卸载时无法删除配置文件成为WiX 3.5 中的一个已知缺陷
它与UpdateIfExists属性无关,也与产品是否卸载重装或升级无关。

Rob Mensching关于缺陷的说明说,自定义操作错误不会在 WiX 4.0 之前得到修复。这也提醒我们,所有的 wixutil 都是使用自定义操作实现的,并且我们都能够在技术上创建更好的自定义操作来处理用户帐户并将其作为二进制文件或脚本包含在 MSI 中,前提是问题很紧急足够。或者也许只是一个在卸载时删除非活动用户配置文件。

(这个答案的功劳主要归功于问题作者进行的额外研究。我自己对原因的第一次尝试被发现是错误的。谢谢。)

于 2012-05-03T19:27:16.960 回答