wix - MSI 多次安装相同版本的应用程序?
问题描述
我有一个 MSI 安装程序,其中有以下配置:
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes"/>
假设我已经安装了 1.0.0.0 版本。
下次,如果我安装 1.0.0.1 版本。它按预期升级了相同的应用程序。
下次,如果我尝试安装 1.0.0.0 版本。安装程序不允许我选择功能(如预期的那样),但允许在不选择任何功能但顶部复选框的情况下进行安装。我希望安装程序在任何情况下都不允许在版本关闭的情况下进行处理。
另一个问题,如果安装了 1.0.0.0 版本并且我打开相同的安装程序,它会按预期显示修改、修复和删除屏幕。但是,如果我构建 VS 项目并安装已安装的相同版本。它允许我安装并在程序和功能中,它显示两个具有相同版本的应用程序。我不想要这个。我需要使用任何标志或祝贺来执行此操作吗?
解决方案
ProductVersion : 只有前三位数字ProductVersion
对重大升级有效。确保您至少提高了第三位数字,并且主要升级应该可以工作并删除以前的版本。我强烈建议您不要试图解决这个问题,而只需接受 3 位数版本规则限制。至于为什么,这是 Windows Installer 的限制。最差的之一。
Automagic ProductCode:您必须已将产品代码设置为自动生成。这意味着每次重建都会产生一个新的产品代码,并且本质上会设置一次重大升级。此主要升级失败,因为您错误的 4 位版本号仅在第 4 位上增加,并且由于主要升级检测和运行失败,您的应用程序结果的两个并排安装版本。
推荐阅读
- url - Twilio 发送的短信中的 URL 已更改
- internet-explorer-11 - Web 组件多边形填充在 IE 11 中不起作用。我在 index.html 文件中添加了多边形填充 JS 文件
- http - Azure 持久功能通过邮件发送 EventPostUri
- java - iText7:MarginsCollapseHanlder 内的奇怪 NPE
- python - 覆盖范围:哪个测试触及了这条线?
- firebase - firebase admin SDK 有什么方法可以登录到用户帐户?
- image-processing - 基于图像的考勤系统数据集创建
- java - Java 类正在显示加密密码
- javascript - 如何在同时进行查询时不选择两次相同的对象?
- git - 将 git 配置为始终显示绝对路径