我有一个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安装程序的一个限制。其中一个更糟糕。
Automagic产品代码 :您必须将产品代码设置为自动生成。这意味着,每次重建都会生成一个新的产品代码,并基本上设置一个重大升级。此主要升级失败的原因是您错误的4位版本号仅增加到第4位,并且由于主要升级检测和运行失败,导致应用程序的两个并排安装版本出现结果。