Actuellement, j'ai ceci dans cette partie du script Inno
[Run]
Filename: {app}\bin\vcredist_x86.exe; Parameters: "/q:a /c:""VCREDI~3.EXE /q:a /c:""""msiexec /i vcredist.msi /qn"""" """; WorkingDir: {app}\bin; StatusMsg: Installation des bibliothèques Visual Studio 2010 C++ CRT...
Il exécutera l'installateur vcredist pendant l'installation de l'application. Mais le problème avec cela est que si l'utilisateur l'a déjà installé, cela affiche des choses comme
- Réparer/Supprimer
- Version déjà plus récente détectée
Y a-t-il un moyen d'éviter cela et d'exécuter cet installateur uniquement si nécessaire ? Que devrais-je ajouter au script Inno ?
ÉDIT :
Avec l'aide de @John liens j'ai fait cela avec la fonction suivante ajoutée
J'ai également utilisé ce site pour obtenir le code produit visual studio 2010 crt++ et utilisé le dossier de désinstallation dans le registre pour détecter s'il est installé.
function InitializeSetup(): Boolean;
var
ErrorCode: Integer;
RedistInstalled : Boolean;
Result1 : Boolean;
begin
RedistInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{196BB40D-1578-3D01-B289-BEFC77A11A1E}');
if RedistInstalled then
begin
Result := true;
end else
begin
RedistInstalled := RegKeyExists(HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{196BB40D-1578-3D01-B289-BEFC77A11A1E}');
if RedistInstalled then
begin
Result := true;
end else
begin
Result1 := MsgBox('Cette configuration nécessite le Package redistribuable Microsoft Visual C++ 2010 (x86). Veuillez installer le Package redistribuable Microsoft Visual C++ 2010 (x86) et exécutez à nouveau cette configuration. '#13#10' '#13#10'Voulez-vous télécharger le Package redistribuable Microsoft Visual C++ 2010 (x86) maintenant ?',
mbConfirmation, MB_YESNO) = idYes;
if Result1 =false then
begin
Result:=false;
end else
begin
Result:=false;
ShellExec('open',
'http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe',
'','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
end;
end;
end;
Ce serait quand même bien si toutefois l'installateur continuait après le téléchargement/l'installation ou que je pouvais d'une manière ou d'une autre adapter mon code précédent qui exécute l'installateur inclus (avec l'installation) :
[Run]
Filename: {app}\bin\vcredist_x86.exe; Parameters: "/q:a /c:""VCREDI~3.EXE /q:a /c:""""msiexec /i vcredist.msi /qn"""" """; WorkingDir: {app}\bin; StatusMsg: Installation des bibliothèques Visual Studio 2010 C++ CRT...
mais c'est quand même suffisant.