在每个新版本

时间:2015-12-28 10:46:12

标签: inno-setup

如果旧版本的应用程序尚未存在,我想在“程序和功能”屏幕中保留旧条目,并且只有在安装了相同版本时才覆盖该条目(并在这种情况下卸载旧实例)。如果版本不同,这应该允许我们保留应用程序的多个版本。

我认为我可以通过更改GUID来做到这一点。

  • 这是正确的做法吗?
  • 我可以以某种方式自动化该过程并自动将GUID生成依赖于应用程序版本吗?

我们使用构建脚本来自动运行Inno安装程序,并且通常不会在新版本发布之前编辑它,用于管理新版本的构建脚本。

1 个答案:

答案 0 :(得分:1)

要在“程序和功能”中保留同一应用程序的不同版本,您需要为每个版本为AppId directive分配不同的值。

默认情况下,AppId等于AppName

如果要为每个版本设置唯一值,请在值中包含AppVersion。您可以使用a preprocessor function SetupSetting

[Setup]
AppName=My Program
AppVersion=1.5
AppId={#SetupSetting("AppName")}_{#SetupSetting("AppVersion")}

要使上述工作正常,AppId 必须低于 AppNameAppVersion