IsDotNetInstalled Inno Setup函数中的`MinServicePack`参数是什么

安德鲁·特拉克

我只是注意到Inno Setup 6.0.4现在已经发布,并且具有新IsDotNetInstalled功能。

目前,我一直在使用此脚本来查看是否已安装4.6.2:

{ Determines if .NET 4.6.2 (or higher) is installed }
function IsDotNetDetected(): boolean;
var
    strKey64: string;
    strKey86: string;
    dwInstalled: cardinal;
begin
  strKey64 := 'SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full';
  strKey86 := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full';

  result := false; { Assume .NET Framework 4.6.2 is not installed }

  { For more information, see: }
  { http://msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx#net_b }
  if(Is64BitInstallMode()) then begin
    if (RegValueExists(HKLM, strKey64, 'Release')) then begin
      RegQueryDWordValue(HKLM, strKey64, 'Release', dwInstalled);
      if(dwInstalled >= 378675) then begin
        result := true;
      end;
    end;
  end
  else begin
    if (RegValueExists(HKLM, strKey86, 'Release')) then begin
      RegQueryDWordValue(HKLM, strKey86, 'Release', dwInstalled);
      if(dwInstalled >= 378675) then begin
        result := true;
      end;
    end;
  end;
end;

上面的代码在这里被调用:

function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
  result := '';

  dotNetNeeded := not IsDotNetDetected();

  if(dotNetNeeded) then begin
    if (MsgBox(ExpandConstant('{cm:DotNet_NeedToDownload}'),
                      mbConfirmation, MB_OKCANCEL) = IDCANCEL) then begin
      result := ExpandConstant('{cm:DotNet_InstallAborted}');
      Abort();
    end;
  end;

  if (bDownloadHelpDocSetup) then
    DoDeleteFile(ExpandConstant('{app}\MeetSchedAssist.chm'));
end;

我已经阅读了帮助主题,似乎可以将这段代码简化为:

function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
  result := '';

  dotNetNeeded := not IsDotNetInstalled(net462, 0);

  if(dotNetNeeded) then begin
    if (MsgBox(ExpandConstant('{cm:DotNet_NeedToDownload}'),
                      mbConfirmation, MB_OKCANCEL) = IDCANCEL) then begin
      result := ExpandConstant('{cm:DotNet_InstallAborted}');
      Abort();
    end;
  end;

  if (bDownloadHelpDocSetup) then
    DoDeleteFile(ExpandConstant('{app}\MeetSchedAssist.chm'));
end;

我注意到示例代码也使用它来格式化错误消息:

FmtMessage(SetupMessage(msgWinVersionTooLowError), ['.NET Framework', '4.6.2'])

MinServicePack这里参数是什么

感谢您的澄清。

安德鲁·特拉克

我在MinServicePack 这里找到了答案它指出:

// service -- Specify any non-negative integer for the required service pack level:
//    0               No service packs required
//    1, 2, etc.      Service pack 1, 2, etc. required

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Inno Setup安装JRE?

来自分类Dev

Inno Setup设置TInputQueryWizardPage高度

来自分类Dev

Inno Setup从CDATA创建TStringList

来自分类Dev

Inno Setup语法-OR,AND

来自分类Dev

Inno Setup Abs(Integer)功能

来自分类Dev

inno setup中的“ Not in a loop”错误

来自分类Dev

在Inno Setup中将{AppVersion}用作函数的参数

来自分类Dev

Inno Setup:选择组件的功能

来自分类Dev

Inno Setup隐藏日志条目

来自分类Dev

在Inno Setup中取消安装

来自分类Dev

Inno Setup更改CreateOutputMsgMemoPage字体

来自分类Dev

Inno Setup中的TTreeView

来自分类Dev

Inno Setup中的条件DisableProgramGroupPage

来自分类Dev

未捕获Inno Setup异常

来自分类Dev

在Inno Setup中从过程调用函数?

来自分类Dev

Inno Setup ComponentsList OnClick事件

来自分类Dev

缺少Inno-Setup分号

来自分类Dev

Inno Setup中的WizardForm.TypesCombo.OnChange(WizardForm.TypesCombo)是什么意思?

来自分类Dev

为什么要在Inno Setup的ExtractTemporaryFiles函数中指定路径?

来自分类Dev

Inno Setup中的/ SL5,/ SPAWNWND,/ NOTIFYWND和/ DEBUGWND参数是什么意思?

来自分类Dev

为什么在Inno Setup中使用“&”字符?

来自分类Dev

如何在Inno Setup中使用PrepareToTinstall函数的NeedsRestart参数?

来自分类Dev

在Inno Setup中隐藏消息框是什么意思?

来自分类Dev

Inno Setup中的#emit指令有什么意义?

来自分类Dev

在Inno Setup中记录TWindowsVersion

来自分类Dev

Inno Setup,[运行]中参数中的空格

来自分类Dev

Inno Setup中的IsAdmin和IsAdminInstallMode有什么区别?

来自分类Dev

Inno Setup,检测参数文件是否存在?

来自分类Dev

Inno Setup 中的动态密码