有没有办法检查.NET Framework 4是否已经安装,只有当它不在系统中才能安装?
我知道如何通过检查以下注册表项来确定.NET Framework 4是否安装?
hasDotnet4 := RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\.NETFramework\policy\v4.0');
基于上述检查,如何有条件地运行.NET Framework 4安装?
解决方法
最简单的方法是使用
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;