12

有没有办法检查 .NET Framework 4 是否已安装并仅在它不在系统中时才安装?

我知道,如何通过检查以下注册表项来确定是否安装了 .NET Framework 4?

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

如何根据上述检查有条件地运行 .NET Framework 4 安装?

4

1 回答 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;
于 2012-04-11T17:43:25.170 回答