我发现 WiX 3.8 和 Windows Installer 存在一个奇怪的问题。
我创建了一个 Outlook 插件,我希望没有管理员权限的最终用户能够在他们的机器上安装它。
因此,我仔细确定
C:\program files
在安装期间不要写入任何系统级目录(如等)- 不要写入任何系统级注册表项(如
HKEY_LOCAL_MACHINE
)
在我的 WiX 脚本中,我确保设置ALLUSERS=0
并设置我找到的所有其他相关属性perUser
或limited
:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="*" Name="MyAddin" Language="1033" Version="1.0.0"
Manufacturer="Me" UpgradeCode="-some-guid-" Codepage="1252">
<Package InstallerVersion="200" Compressed="yes"
InstallScope="perUser"
Description="yada yada" Manufacturer="Me" Languages="1033" SummaryCodepage="1252"
InstallPrivileges="limited"
Comments="yada yada" />
<Property Id="ALLUSERS" Value="0"/>
我原以为这会起作用-但是在我的测试系统上,使用普通的标准用户帐户(没有管理员权限),我的安装失败了-消息对话框告诉我我没有足够的权限为所有用户安装它...。
怎么回事?我特别想为**只是这个*用户安装这个 - 不是机器上的所有用户!
查看 MSI 日志,我看到了令人惊讶的事情:
MSI (c) (B0:B4) [18:08:08:543]:注意:1:2262 2:AdminProperties 3:-2147287038
MSI (c) (B0:B4) [18:08:08:543]:机器策略值“AlwaysInstallElevated”为 0
MSI (c) (B0:B4) [18:08:08:543]:用户策略值“AlwaysInstallElevated”为 0
MSI (c) (B0:B4) [18:08:08 :543]:使用用户权限运行产品'........':未分配。
...
MSI (c) (B0:B4) [18:08:08:543]:属性更改:修改 ALLUSERS 属性。它的当前值为“0”。它的新值:'1'。
*究竟为什么Windows Installer 决定将ALLUSERS
属性更改为1
?!?!? 我从来没有告诉过它!嘘……
有任何想法吗?想法?指针?