Wix / MSI – 如何避免安装相同的MSI两次

前端之家收集整理的这篇文章主要介绍了Wix / MSI – 如何避免安装相同的MSI两次前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的安装程序用WiX语言编码.支持主要升级机制.一个特殊的要求是同一MSI文件将无法安装两次.

现在是棘手的部分:如果用户安装然后再次尝试安装(UI模式)安装程序进入维护模式,一切正常(更改/修复将显示禁用).

但是当以静默方式安装为用例状态时

msiexec.exe / i installer.msi / qn

第二次安装将正常进行安装(我们不希望这样做)

有些事情要注意的是:

在第二次安装的日志文件中,将跳过序列“FindRelatedProducts”(如微软文档http://msdn.microsoft.com/en-us/library/windows/desktop/aa368600(v=vs.85).aspx中的状态)

另外我研究一下这里http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/UpgradeVersion-is-not-detecting-the-same-version-preventing-downgrades-td5875840.html有很好的信息,声称对于这种情况我们可以使用已安装的属性来检测是否已经安装了产品…

但是,我被困在这里:因为我必须避免安装与当前版本相同的版本,并允许升级更大,在WiX中如何实现?

谢谢你的帮助!

这是无法做到的.

尝试安装已安装的软件包时,Windows Installer会自动执行修复.没有升级过程.

此外,维护过程是基于ProductCode触发的.当第二次Windows Installer看到它的ProductCode已经安装并进入维护模式时启动包.它不以任何方式升级.

升级仅在更改ProductVersion和ProductCode时使用.

编辑:

为了防止在维护模式下进行自动修复,您可以尝试:

> write a win32 DLL custom action,检测产品是否安装
>如果是,这个自定义动作应该是return 1602

原文链接:https://www.f2er.com/windows/363626.html

猜你在找的Windows相关文章