Le InitializeSetup fonction est appelée lorsque l'Inno exécutable du programme d'Installation est exécuté. L'insertion de ce code pour un script personnalisé devrait faire ce que vous voulez:
function IsDotNetDetected(version: string; service: cardinal): boolean;
// Indicates whether the specified version and service pack of the .NET Framework is installed.
//
// version -- Specify one of these strings for the required .NET Framework version:
// 'v1.1.4322' .NET Framework 1.1
// 'v2.0.50727' .NET Framework 2.0
// 'v3.0' .NET Framework 3.0
// 'v3.5' .NET Framework 3.5
// 'v4\Client' .NET Framework 4.0 Client Profile
// 'v4\Full' .NET Framework 4.0 Full Installation
//
// service -- Specify any non-negative integer for the required service pack level:
// 0 No service packs required
// 1, 2, etc. Service pack 1, 2, etc. required
var
key: string;
install, serviceCount: cardinal;
success: boolean;
begin
key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
// .NET 3.0 uses value InstallSuccess in subkey Setup
if Pos('v3.0', version) = 1 then begin
success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
end else begin
success := RegQueryDWordValue(HKLM, key, 'Install', install);
end;
// .NET 4.0 uses value Servicing instead of SP
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 InitializeSetup(): Boolean;
begin
if not IsDotNetDetected('v4\Client', 0) then begin
MsgBox('MyApp requires Microsoft .NET Framework 4.0 Client Profile.'#13#13
'Please use Windows Update to install this version,'#13
'and then re-run the MyApp setup program.', mbInformation, MB_OK);
result := false;
end else
result := true;
end;
(Code à partir d'ici: http://www.kynosarges.de/DotNetVersion.html)
Tout d'abord, il vérifie la présence d'une entrée de registre qui indique la version de l' .NET framework est installé. Si l'entrée de registre n'est pas présente, il invite l'utilisateur à télécharger le .NET framework. Si l'utilisateur répond Oui, il ouvre l'URL de téléchargement. (Vous pouvez avoir à changer la version, il spécifie dans le script de la version 4.0.)
Je suis aussi tombée sur cet article sur CodeProject, qui peut être un plus complet et personnalisable façon de faire ce que vous cherchez, même si elle peut prendre plus de travail pour comprendre et devra être modifié pour fonctionner avec la version 4.0.