我正在使用InstallShield 2012 Spring - 专业版,我尝试用新安装脚本再次运行时替换现有的软件安装(如果存在)。
我已经在线阅读了一些配置Minor和Major升级设置的内容。
我有一个InstallScript项目,我找不到如何进行Minor和Major升级,就像可以使用Basic MSI项目一样。我在网上看到,这可以通过安装设计器然后进行媒体/升级然后配置升级来完成MSI项目。 InstallScript项目中不提供此选项。
我可以使用哪些InstallScript项目来更改此行为?提前谢谢。
答案 0 :(得分:0)
我相信您需要为主脚本添加更多事件处理程序。首先,如果它们尚未存在,您需要添加以下处理程序:
重要的是要让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获取基本信息),该过程的一部分涉及增加次要版本,以便在新安装程序针对较旧版本运行时触发更新模式版本
祝你好运!