WiX - 将安装范围从每用户切换到每机器

Ant*_*ode 5 windows-installer wix

我正在尝试创建一个支持每用户和每机器安装的安装程序,具体取决于用户界面上选择的安装类型。

  • perUser 安装类型将应用程序安装到“WIX_DIR_COMMON_DOCUMENTS”中,并且不需要管理员权限。
  • perMachine 安装类型将应用程序安装到“ProgramFilesFolder”中,并应请求 UAC 对话框。

我的尝试是最初将 Package/@InstallScope 设置为 perUser,然后稍后修改 ALLUSERS 属性。

如果用户选择 perMachine 设置类型,我将尝试将 ALLUSERS 属性设置为 1,执行以下操作:

<Publish Property="ALLUSERS" Value="1">1</Publish>
Run Code Online (Sandbox Code Playgroud)

“安装”按钮有一个 UAC 图标,但按下它后没有出现 UAC 对话框!

在此输入图像描述

相反,我收到一条错误消息,表明我显然没有为计算机的所有用户安装该应用程序的权限。

没有UAC对话框出现或有意为之是一个错误吗?我错过了什么吗?

Ant*_*ode 6

WiX 邮件列表中的某人向我指出了msdn 上的单包创作文章

我必须初始化以下属性:

<Property Id='ALLUSERS' Value='2' />
<Property Id='MSIINSTALLPERUSER' Value='1' />
Run Code Online (Sandbox Code Playgroud)

并将“MSIINSTALLPERUSER”属性设置为空字符串以进行每台计算机安装。

<Publish Property="MSIINSTALLPERUSER" Value="{}">1</Publish>
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于 Windows Installer 5 及更高版本!