我有一个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项目并安装已经安装的相同版本。它允许我安装程序,并在程序和功能中显示两个具有相同版本的应用程序。我不要这个我需要使用任何标志或祝贺吗?
答案 0 :(得分:1)
ProductVersion :仅 ProductVersion
的前三位数字对主要升级有效。确保您至少提高了第三位数字,并且主要升级应该可以运行并删除以前的版本。我强烈建议您不要尝试破解,而只接受3位数版本规则限制。至于为什么的问题,这是Windows Installer的限制。最糟糕的情况之一。
自动产品代码 :您必须将产品代码设置为自动生成。这意味着每次重建都将产生一个新的产品代码,并实质上进行了重大升级。由于重大升级检测和运行失败,因此主要的升级失败,因为您的错误的4位数字版本号仅在第4位大写,并且导致应用程序并排安装了两个版本。