Inno Setup从“安装程序检测到...当前正在运行”中删除版本号

时间:2016-07-11 01:29:41

标签: inno-setup

我已将行AppMutex={#MyAppName}添加到我的InnoSetup脚本中,#MyAppName不包含版本号。但是,当我的Setup.exe运行时,它显示“你的应用程序v1.01已经在运行”(或其他)与版本号,我不想要。有没有办法让消息不显示版本号?

原因:假设我正在运行我的应用程序v1.00,并启动“MyApp_101_Setup.exe”(使用Inno Setup制作)。显示的消息是“你的应用程序v1.01已经在运行”,这是不正确的,我正在尝试在v1.00运行时安装v1.01。这可能会给我的用户造成混淆。

任何提示?谢谢! :)

1 个答案:

答案 0 :(得分:0)

你错了。

消息是:

SetupAppRunningError=Setup has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit.

%1替换为AppName directive的值:

ExpandedAppName := ExpandConst(SetupHeader.AppName);

...

{ Check if app is running }
while CheckForMutexes(ExpandedAppMutex) do
  if LoggedMsgBox(FmtSetupMessage1(msgSetupAppRunningError, ExpandedAppName),
     SetupMessages[msgSetupAppTitle], mbError, MB_OKCANCEL, True, IDCANCEL) <> IDOK then
    Abort;

因此,只有在AppName指令中包含该版本时,该版本才会包含在消息中。有什么不对,指令值可能不包括版本,因为documentation说:

  

不要包含版本号,因为它是由AppVersion和/或AppVerName指令定义的。