installation - Inno setup 中等效的升级代码

标签 installation inno-setup pascalscript

Inno Setup 中 Visual Studio 安装程序升级代码的等价物是什么?我找到了这篇文章 How do I uninstall related products in Inno Setup using an InstallShield Upgrade Code GUID使用升级代码搜索产品。 AppId 和 UpgradeCode 一样吗?我是 Inno 设置的新手,有人可以帮我吗?

最佳答案

通常,您在安装升级时不会卸载旧版本的应用程序。
AppId有点相关;给定具有相同 ID 的两个安装程序(或更常见的是同一安装程序的两个版本),默认情况下 Inno 将提供安装到与先前安装相同的文件夹中,并且两者将共享卸载信息。

通常,在发布同一应用程序的升级版本时,您只需确保 AppId (或 AppName 如果您没有指定 id)与旧版本相同,一切都会正常工作。

强烈推荐的一件事(即使对于第一个版本)是将以下内容添加到您的 [Setup]部分:

DisableDirPage=auto
DisableProgramGroupPage=auto

这将让用户在第一次安装时选择安装位置,但在后续安装/升级时隐藏选择。由于 Inno 无论如何都默认为前一个位置,因此这避免了将安装位置从一个安装更改为下一个安装位置可能导致的任何可能的混淆(和剩余文件)。

除此之外,几乎不需要做任何其他事情。在极少数情况下,您可能会使先前版本中使用的特定文件变得多余(例如,不再使用特定库);如果您愿意,可以使用 [InstallDelete] 来处理此问题。条目以从不再需要的先前版本中删除任何文件。 (始终确保仅按名称删除特定文件——使用通配符极其危险。)尽管如此(除非它们很大),但留下冗余文件通常没有太大危害——如果它们最终会被清理干净用户卸载。

如果您想进一步自定义行为,您可以在 [Code] 中执行各种操作。 .

关于installation - Inno setup 中等效的升级代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540383/

相关文章:

loops - Inno Setup 在 Pascal 代码中迭代 [Files] 部分

java - Wildfly - 模块 - 确定包和依赖信息的 'proper' 方法是什么?

installation - Inno-setup:基于现有页面类型的自定义向导页面

python - 无法 pip 安装异常包

inno-setup - 在临时文件夹中创建文件夹

registry - Inno Setup 不允许访问所有注册表项,为什么?

inno-setup - 如何强制 Inno Setup 使用自定义向导页面中的信息动态设置安装文件夹?

inno-setup - 通过 InnoSetup 中的脚本访问文件列表

android - 如何使用 gradlew.sh 在 android 上安装应用程序?

crash - 新安装的Xcode 5.1无法安装所有组件,然后在启动时崩溃