WiX - 将InstallScope从perUser切换到perMachine

时间:2015-02-11 10:25:39

标签: wix windows-installer

我正在尝试创建一个支持perUser和perMachine安装的安装程序,这取决于UI上的一系列安装类型。

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

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

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

<Publish Property="ALLUSERS" Value="1">1</Publish>

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

enter image description here

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

是否出现或打算出现UAC对话框的错误?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

WiX Mailing list的某个人将我指向msdn上的Single Package Authoring article

我必须初始化以下属性:

<Property Id='ALLUSERS' Value='2' />
<Property Id='MSIINSTALLPERUSER' Value='1' />

并将'MSIINSTALLPERUSER'属性设置为每个计算机安装的空字符串。

<Publish Property="MSIINSTALLPERUSER" Value="{}">1</Publish>

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