Как проверить, что .NET Framework 4.0 установлен на компьютере с помощью сценария Inno, используемого для развертывания программного обеспечения на этом компьютере? - PullRequest
2 голосов
/ 25 июля 2011

Я читал предыдущий пост на эту тему:

Inno Setup: убедитесь, что установлен .NET 4.0

и попытался использовать предложенный код в моем скрипте. Я сделал несколько модификаций для целей тестирования, но ничего, что я считаю существенным:

[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 Ответ

2 голосов
/ 25 июля 2011

у вас есть опечатка, имя функции должно быть InitializeSetup вместо InitalizeSetup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...