在InstallScript项目中设置次要或主要升级

时间:2017-03-10 15:47:15

标签: installshield installscript installshield-2012 major-upgrade

我正在使用InstallShield 2012 Spring - 专业版,我尝试用新安装脚本再次运行时替换现有的软件安装(如果存在)。

我已经在线阅读了一些配置Minor和Major升级设置的内容。

我有一个InstallScript项目,我找不到如何进行Minor和Major升级,就像可以使用Basic MSI项目一样。我在网上看到,这可以通过安装设计器然后进行媒体/升级然后配置升级来完成MSI项目。 InstallScript项目中不提供此选项。

我可以使用哪些InstallScript项目来更改此行为?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我相信您需要为主脚本添加更多事件处理程序。首先,如果它们尚未存在,您需要添加以下处理程序:

  • OnShowUI
  • OnUpdateUIBefore
  • OnUpdateUIAfter
  • OnMaintUIBefore
  • OnMaintUIAfter

重要的是要让OnShowUI运行适当的"之前"方法。以下是我的工作;你需要在其他方法中做任何你需要做的事情(我的是特定领域的,我不能直接提供这些方法)。

// Check whether the update is needed.
if( nResult = VERSION_COMPARE_RESULT_SAME ) then
    // Note: This result should occur only for differential media, since the setup
    // will display OnMaintUIBefore or OnFirstUIBefore by default if the versions match
    // for full setup media.
    szMsg = SdLoadString( IDS_IFX_WARNING_UPDATE_NOT_NEEDED );
    SdSubstituteProductInfo( szMsg );
    if( MessageBox( szMsg, MB_ICONEXCLAMATION | MB_YESNO ) != IDYES ) then
        abort;
    endif;
endif;

我会说在OnUpdateUIBefore中,我注释掉了以下代码:

Write.exe /p C:\temp\MyTextFile.txt

我不记得原因,但我怀疑它导致更新模式无法正常工作。

我自动化我的Installshield构建(通过COM - 如果感兴趣,请参阅this answer获取基本信息),该过程的一部分涉及增加次要版本,以便在新安装程序针对较旧版本运行时触发更新模式版本

祝你好运!