Incorporer le framework 4.0 dans une application avec innosetup 5
samy basunga
-
Modifié le 18 nov. 2017 à 22:02
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 2019
-
20 nov. 2017 à 20:59
Salut à tous !
je veux incorporer le framework 4.0 dans mon application développée en visual studio professionnel 2012. mon souhait est le suivant : lors de l'installation de ce logiciel par l'utilisateur, le système doit vérifier si celui-ci a bien le framework 4.0 dans son ordinateur.
si oui, on installe directement l'application
si non, on recommande d'installer d'abord le framework.
voici mon code dans l'éditeur Inno Setup :
//FONCTION DE VERIFICATION FRAMEWORK
function VerificationFramework(): Boolean; var ErrorCode: Integer; NetFrameWorkInstalled : Boolean; Result1 : Boolean; SP2Installed : Boolean; Result2 : Boolean; Test : String; begin //LA CLE CORRESPONDANT AU FRAMEWORK 4.0 EXISTE-T-ELLE ? NetFrameWorkInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\Framework\.NETFramework\v4.0'); //SI OUI : if NetFrameWorkInstalled then begin //ON RETOURNE TRUE Result := true; end else begin //SINON ON DEMANDE SI ON VEUT INSTALLER Result1 := MsgBox('Cette installation requiert le .NET Framework. Voulez-vous installer ce .NET Framework maintenant et relancer cette installation ensuite ?', mbConfirmation, MB_YESNO) = idYes; if Result1 =false then begin //SI ON NE VEUT PAS INSTALLER ON RENVOIE FALSE Result:=false; end else begin //SI ON VEUT BIEN INSTALLER ON LANCE L'INSTALLATION ShellExec('open', ExpandConstant('{src}\dotNetFx40_Full_setup.exe'), '','',SW_SHOWNORMAL,ewNoWait,ErrorCode); end; end; end; //FONCTION APPELLEE AU DEMARRAGE DU SETUP function InitializeSetup(): Boolean; var ErrorCode : Integer; begin //SI LE FRAMEWORK EXISTE : if VerificationFramework() then begin //ON DONNE LA POSSIBILITE DE CONTINUER ! Result := true; end else begin Result := false; end; end;
Avec ce code je suis bloqué. Lors de l'installation même si le framework est déjà installé dans l'ordinateur le système demande toujours de l'installer et ça ne passe jamais à l'installer du logiciel...
Pouriez-vous me proposer vos savoirs à fin que je sois débloqué ?
Merci d'avance!
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 201917 Modifié le 19 nov. 2017 à 20:16
Salut,
Difficile de suivre la logique d'un code avec une indentation aussi fantaisiste...
Le problème se situe visiblement aux lignes 23-24 :
Result1 := MsgBox('Cette installation requiert le .NET Framework. Voulez-vous installer ce .NET Framework maintenant et relancer cette installation ensuite ?',
mbConfirmation, MB_YESNO) = idYes;
bien que je ne comprenne pas la syntaxe particulière de cette MsgBox (spécifique à Inno Setup, je présume).
Quoi qu'il en soit, c'est là que doit être clairement déterminé si l'usager veut installer (oui ou non) le framework.
"mbConfirmation, MB_YESNO) = idYes" ça ne me semble pas très limpide ! C'est oui ou c'est non, ou tu veux ou tu veux pas ^^
Par ailleurs, et même si ça n'a pas d'influence sur le résultat, il est beaucoup plus juste d'écrire la fonction InitializeSetup() ainsi :
function InitializeSetup(): Boolean;
var
ErrorCode: Integer;
begin
Result := VerificationFramework;
end;
Cordialement,
korgis
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 201917 20 nov. 2017 à 10:37
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 Modifié le 21 nov. 2017 à 11:16
Tout comme Korgis, que je salue au passage,
je pense que le soucis vient la clé de registre que tu testes.