(WiX)将产品信息写入注册表以获取双用途安装程序

时间:2015-03-11 15:13:11

标签: wix windows-installer

我根据this article在WiX中制作了一个双用途包。

所以我根据文章初始化了ALLUSERS和MSIINSTALLPERUSER:

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

在我的对话框中,我设置了MSIINSTALLPERUSER =&#34; 1&#34;如果用户选择了每用户选项。对于每台机器,我设置了MSIINSTALLPERUSER =&#34;&#34;。

到目前为止一切顺利。问题是我的产品信息一直写到HKEY_CURRENT_USER。除非我用空字符串初始化MSIINSTALLPERUSER。但即使对于每用户安装,我也需要管理员权限

如果用户选择了每台计算机的安装,如何将产品信息写入HKEY_LOCAL_MACHINE?

编辑:清理问题。

1 个答案:

答案 0 :(得分:2)

当我从命令行设置MSIINSTALLPERUSER =“”时,我发现安装程序使用HKLM。所以我比较了我用MSIINSTALLPERUSER =“”和MSIINSTALLPERUSER =“1”初始化的安装程序的详细日志,发现如果MSIINSTALLPERUSER为空则它设置ALLUSERS =“1”。

所以我只是在对话框中为每台机器选项添加以下行:

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

我预计如果ALLUSERS是2,它会检查MSIINSTALLPERUSER属性以确定注册表位置,但这显然是错误的。不幸的是,在文章中没有提到你必须将ALLUSERS设置为1并且仅仅MSIINSTALLPERUSER还不够。