Inno Setup 不会在 PrepareToInstall 部分重新启动

Inno Setup doesnt restart at PrepareToInstall section

我试图提示用户在启用 .NET 3.5 后重新启动计算机,这是 MSSQLServer 所必需的。 示例:

function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
  Log('PrepareToInstall() called');
  GetWindowsVersionEx(Version);
  if (Version.Major = 10) then begin
   NeedsRestart :=True;
  end
end;

我错过了什么吗?

NeedsRestart 参数仅在 PrepareToInstall event function 实际上中止安装(通过返回非空字符串)时才被考虑。您可能不想做的事情。换句话说,您在滥用 PrepareToInstall 事件函数(无论如何都是错误的)。

改用NeedRestart event function

[Code]

function NeedRestart(): Boolean;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);
  Result := (Version.Major >= 10);
end;