代码之家  ›  专栏  ›  技术社区  ›  ScarletPanda

是否仍要升级。exe安装的程序带有。msi在ARP中没有复式输入?

  •  0
  • ScarletPanda  · 技术社区  · 7 年前

    我目前正在使用WiX工具集构建安装程序。这个工具很好,但最近我遇到了一个问题。当我用安装程序时。exe,然后升级为。msi,添加/删除程序中有一个复式条目。是否有任何方法可以防止安装程序添加重复条目?谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   PhilDW    7 年前

    从您的帖子中不清楚您是否遵循了主要升级的规则,例如在前三个字段中使用相同的升级代码、新的ProductCode和PackageCode、增量ProductVersion,在MSI中有适当的升级逻辑(例如主要升级元素)。您需要在旧版本和升级版本中为这些提供WiX源代码,以查看差异。详细日志也会有所帮助,使用包含/l*vx[日志文件路径]的命令行安装MSI

    如果遵循了这些规则,升级失败的主要原因是一个是每个用户,另一个是每个机器(反之亦然)。一个上下文不会升级另一个上下文。如果是这种情况,日志中会有一个条目,其中FindRelatedProducts引用了另一个上下文中已安装的产品。

    所有这些还假设您最初的安装是基于MSI的exe。如果不是,并且是其他安装软件没有使用MSI文件,那么就没有自动升级。您需要找到一些非MSI的方法来卸载旧产品。典型的方法是在注册表中找到该产品的卸载字符串并运行它。根据使用的软件,可以解析该命令以添加静默选项。