Вопрос по .net – Как установить .NET Framework, только если он еще не установлен?

12

Есть ли способ проверить, установлен ли .NET Framework 4, и устанавливать его только тогда, когда его нет в системе?

Я знаю, как определить, установлен ли .NET Framework 4, проверив следующий раздел реестра?

<code>hasDotnet4 :=
  RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
</code>

Как условно запустить установку .NET Framework 4 на основе вышеуказанной проверки?

возможный дубликатIm using inno setup to detect if .net 4.0 client installed but it doesn't work well Bernard
Нет, это уникально, просто не могу найти ни одной темы с этим ответом Phillip Macdonald

Ваш Ответ

1   ответ
28

Check параметр, который позволяет вам контролировать, если определенный файл из[Files] раздел будет извлечен, или если определенная программа из[Run] раздел будет выполнен. В следующем коде сценария показано его использование для условной установки .NET Framework 4:

[Files]
Source: "dotNetFx40_Full_setup.exe"; DestDir: {tmp}; \
  Flags: deleteafterinstall; Check: FrameworkIsNotInstalled

[Run]
Filename: "{tmp}\dotNetFx40_Full_setup.exe"; Check: FrameworkIsNotInstalled

[Code]

function FrameworkIsNotInstalled: Boolean;
begin
  Result :=
    not RegKeyExists(
      HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
end;
Почему не сExpandConstant('{dotnet40}')Error: User Rate Limit Exceeded
@ i486, проверка раздела реестра лучше, потому что вы не добавляете накладные расходы на обработку исключений. За исключением того, что вы можете легко изменить этот код для определения конкретной версии, например, .NET 4.5.
Error: User Rate Limit ExceededCheck:Error: User Rate Limit Exceeded[Files] раздел, чтобы пропустить даже шаг извлечения.
Спасибо, я попробую :) Phillip Macdonald

Похожие вопросы