如何通过用于在该计算机上部署软件的Inno脚本检查计算机上是否安装了.NET Framework 4.0?

时间:2011-07-25 16:50:45

标签: .net frameworks inno-setup

我已阅读有关此主题的上一篇文章:

Inno Setup: Verify that .NET 4.0 is installed

并尝试在我的脚本中使用建议的代码。我为测试目的做了一些修改,但我认为没有什么是实质性的:

[Code]
function IsDotNetDetected(version: string; service: cardinal): boolean;
// Indicates whether .NET Framework 4.0 is installed
// Taken from www.kynosarges.de/DotNetVersion.html
var
  key: string;
  install, serviceCount: cardinal;
  success: boolean;
begin
  key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
  if Pos('v4', version) = 1 then begin
    success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
  end else begin
    success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
  end;
  result := success and (install = 1) and (serviceCount >= service);
end;

function InitalizeSetup(): Boolean;
begin
  if not IsDotNetDetected('v4\Full', 0) then begin
    MsgBox('AppName requires Microsoft .NET Framework 4.0 Full Profile.'#13#13
        'Please download this from www.zemax.com/updates,'#13
        'and then re-run the AppName setup program.', mbInformation, MB_OK);
    result := false;
  end else begin
    MsgBox('Found Microsoft .NET Framework 4.0.', mbInformation, MB_OK);
    result := true;
  end;
end;

但是,这似乎不起作用,我无法弄清楚原因。当我编译脚本时,几乎总是编译挂在包含代码的脚本部分(上面)。如果脚本编译完成,并且我开始部署该软件,我从未看到一个消息框,指示.NET Framework 4.0的存在与否。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

你有一个错字,函数名必须是InitializeSetup而不是InitalizeSetup。