我已将行AppMutex={#MyAppName}
添加到我的InnoSetup脚本中,#MyAppName
不包含版本号。但是,当我的Setup.exe运行时,它显示“你的应用程序v1.01已经在运行”(或其他)与版本号,我不想要。有没有办法让消息不显示版本号?
原因:假设我正在运行我的应用程序v1.00,并启动“MyApp_101_Setup.exe”(使用Inno Setup制作)。显示的消息是“你的应用程序v1.01已经在运行”,这是不正确的,我正在尝试在v1.00运行时安装v1.01。这可能会给我的用户造成混淆。
任何提示?谢谢! :)
答案 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指令定义的。