【问题标题】:How to upgrade latest version of my application without uninstall the old version manually?如何在不手动卸载旧版本的情况下升级我的应用程序的最新版本?
【发布时间】:2023-07-25 01:35:01
【问题描述】:

我在 Visual Studio 中有我的项目,我使用 installshield 作为我的 Windows 安装程序。当我安装应用程序的新更新版本时,它会显示

这个产品的另一个版本是这样自动安装的...

如何通过覆盖旧版本来安装新版本?

有什么方法可以在 installshield 中配置或给我任何其他方式 ?

【问题讨论】:

  • 引用的文本是实际的错误消息吗?如果是这样,那真的是它所说的吗?
  • “已安装该产品的另一个版本。无法继续安装此版本。要配置或删除该产品的现有版本,请使用控制面板上的添加\删除程序。”像这样
  • 请更新您的问题以修复错误消息。
  • 我正在 Visual Studio 中开发一种产品,我使用 installshield 作为 Windows 安装程序。我想在不“手动”卸载现有版本的情况下进行 3.1.1 到 3.1.2 之类的最低升级。如何为下一个版本自动配置 installshield 更新。

标签: windows windows-installer upgrade installshield installshield-le


【解决方案1】:

您收到的错误是因为 ProductCode 尚未更改。此代码使您的产品/安装程序独一无二。通常,要编写升级,您需要更改此代码并确保 UpgradeCode 相同,以便识别已安装的内容。

编写升级是一个更广泛的话题,在这里可以涵盖太多信息。我建议page 用于了解 Windows 安装程序升级。

【讨论】:

  • 如果我更改我的产品代码,我的产品的另一个版本单独存在,但我想卸载现有版本并安装新版本,同时安装我的新版本,如 3.1.1 到 3.1.2。无需手动卸载现有版本
  • 您所描述的是重大升级。请按照文档了解如何执行此操作,MSI 应该会自动卸载您的旧版本。
【解决方案2】:

安装的每个升级版本都应该有不同的 ProductCode。 UpgradeCode 告诉安装包该产品已安装。如果 ProductCode 也相同,则 install 假定您再次安装相同的产品。每个更新包的 ProductCode 需要不同。

【讨论】:

    【解决方案3】:

    Upgrade Paths 下,创建一个新路径。将最低版本留空(除非您需要),包括最低版本是的,最高版本应设置为您现在正在安装的版本。包括最高版本到是。

    每次安装更新时,请在“一般信息”部分增加产品版本(如果您想更改)。单击一般信息部分中的新产品代码Do not change 升级代码。

    返回upgrade path,将 Max 版本设置为您现在正在部署的相同版本。

    并确保“常规信息”和“升级路径”中的Upgrade code 相同。

    此过程卸载以前的版本,并安装最新版本。添加/删除程序中没有重复项。

    如果对此有任何疑问,请评论您的问题...

    【讨论】:

      最近更新 更多