How do I install .NET Framework only when it's not already installed?
The easiest you can do, is to use the Check
parameter, which allows you to control if a certain file from the [Files]
section will be extracted, or if a certain program from the [Run]
section will be executed. The following script code shows its usage for the conditional installation of the .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;