其他安装正在进行中 挂起我的 Wix 安装 [英] Other installation In Progress Hanging my Wix Install

查看:20
本文介绍了其他安装正在进行中 挂起我的 Wix 安装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个 WIX 安装程序引导程序(在 msipackage 上使用 DisplayInternalUI="yes"),但是当同时发生其他安装时它会挂起.

I am creating a WIX installer bootstrapper (with DisplayInternalUI="yes" on the msipackage), but it hangs when there are other installations occurring at the same time.

如果我使用 msiexec 自行运行 MSI 文件,我会收到 Windows 安装程序错误另一个安装正在进行中" 消息(即 1500 MSI 错误消息) - 我认为这是挂起我的安装.

If i run the MSI file on its own using msiexec I get a windows installer error "Another installation is in progress" message (i.e 1500 MSI error message) - and I presume this is hanging my install.

因此,我正在做的是查看是否可以在用户按下安装按钮之后(即在 ProgressDlg 之前)锁定 _MSIExecute mutex.如果我可以锁定 Mutex,则没有其他安装正在进行 - 因此继续安装(即执行阶段)是安全的.如果不是,安装程序会显示取消按钮(并且没有其他按钮) - 因此安装将不会继续.

Therefore what I am doing is seeing if I can lock the _MSIExecute mutex just after the user presses the Install button (i.e. before the ProgressDlg). If I can lock the Mutex then there are no other installs in progress - therefore it is safe to proceed with the install (i.e. the execution phase) . If not the installer shows a cancel button (and no other buttons) - so the install will not proceed.

我想知道是否有办法防止 "Another installation is in progress" 错误消息(和其他消息)挂起安装程序.

I was wondering if there was a way of preventing the "Another installation is in progress" error message (and other messages) from hanging the installer.

推荐答案

serverfault.com 的简单解释

<小时>

无 MSI 并发:为什么同时"或换句话说同时发生其他安装?当谈到 WiX Burn 引导程序时,我并没有受过太多的便盆训练,但我想知道有问题的 MSI 是否包含任何启动其他 MSI 安装的自定义操作?这对于 MSI 软件包是不允许的.您不能同时运行两个并发 InstallExecuteSequences.因此,您不能从 InstallExecuteSequence 中启动 MSI.有些人试图从 InstallUISequence 开始安装,由于许多原因,这也是非常不可取的 - 一方面,当安装程序以静默模式运行时,它根本不会运行.如果您为自定义操作设置检查退出代码以及类似的东西,我还怀疑提升的潜在问题和意外的设置失败.它总是置换.要记住的基本经验法则是:自定义操作不得启动其他 MSI 安装.WiX Burn 引导程序 基本上专门用于允许您按顺序运行 MSI 文件 - 而不是同时运行 - 但它也更多:它是一个组合引导程序、链接器、下载器等......


No MSI Concurrency: Why are there other installations happening "at the same time" - or in other words concurrently? I am not too potty-trained when it comes to WiX Burn bootstrappers, but I am wondering if the MSI in question contains any custom actions which kicks off other MSI installs? This is not allowed for MSI packages. You can not have two concurrent InstallExecuteSequences running at the same time. Hence you can not kick off an MSI from within an InstallExecuteSequence. Some people try to kick off installs from the InstallUISequence, which is also very unadvisable for many reasons - for one thing it won't run at all when the setup is run in silent mode. I also suspect potential issues with elevation, and unexpected setup failure if you set check exit code for the custom action, and that kind of stuff. It always permutes. The basic rule of thumb to remember is: Custom actions must never launch other MSI installations. The WiX Burn bootstrapper basically specifically exists to allow you to run MSI files in sequence - and not concurrently - but it is also more: it is a combined bootstrapper, chainer, downloader, etc...

互斥锁:强词夺理,但如果你知道什么对你有好处,你就会远离 MSI 互斥锁.救你自己!:-).MSI是一种反击技术,如果你参加战斗,你将真正与风车战斗.这就是我能说的警告你的全部内容.除非您遵循基本规则,否则确实无法处理,在这种情况下,一次运行一个安装程序.不过,WiX 家伙可以处理它 - 留给他们 - 并使用他们的工具属性(WiX Burn).尽管我不清楚技术细节,但它们肯定会实现您所描述的功能(检查系统是否已准备好安装).

Mutex: Strong words, but if you know what is good for you, you will stay away from MSI mutexes. Save yourself! :-). MSI is a technology which fights back, and you will be fighting windmills for real if you take the fight. That is all I can say to warn you. It really is impossible to deal with unless you follow the basic rules, which in this case is one installer running at a time. The WiX guys could deal with it though - leave it to them - and use their tool propery (WiX Burn). Though the technical details are unclear to me, they will certainly have features implemented to do exactly what you describe (check if the system is ready for installation).

挂起的安装:您的系统上也可能存在需要撤消的挂起安装,然后才能安装 MSI 文件.您可以尝试安装另一个 MSI 文件并查看它是否正常运行吗?我不是 100% 确定这是正确的链接,但您也可以尝试:修复阻止程序安装或删除的问题.

这篇关于其他安装正在进行中 挂起我的 Wix 安装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆