我试图制作双用途套餐,但升级时遇到问题。
默认我的属性是
ALLUSERS=2
和MSIINSTALLPERUSER=1
readyToInstall
上的选中,我使用SetProperty放置ALLUSERS=1
和MSIINSTALLPERUSER={}
(只是为了确定)。
该部分工作正常,注册表在HKLM和Program Files中设置。
但是在upgdrade期间...... 我有一个自定义操作,在AppSearch
之后检查,如果密钥位于HKLM中,则设置为ALLUSERS=1
和MSIINSTALLPERUSER={}
。
如果我进行了一次小更新,文件会正确升级。
如果我进行了重大更新,注册表仍然在HKLM中,但文件切换到LocalAppData
(它实际上遵循默认值),忽略了我强制ALLUSERS
到AppSearch
的事实{{1}}之后的1。
(我甚至试图在迁移功能状态之后强制它只是为了模仿UI,但它也没有工作)。
有没有办法用双用途包进行重大升级?
答案 0 :(得分:0)
根据以下摘录,您似乎面临情景B:
重大升级可能失败
如果使用Windows Installer的升级代码功能执行 主要升级现有软件的检测将失败如果:(a) 原始软件安装了ALLUSERS=””
和新版本 软件在其Property表中有ALLUSERS=1
或在命令上传递 或(b)原始软件已安装ALLUSERS=1
和 新软件中未定义ALLUSERS=””
或ALLUSERS
属性表或在命令行上。