2010-03-17 2 views
6

En utilisant le programme d'installation Inno, nous distribuons le VC++ redistributable avec notre application afin que nous puissions l'exécuter automatiquement. Nous avons constaté que l'exécuter sur un système où il est déjà installé nous demande de réparer/annuler l'installation qui va totalement confondre les utilisateurs.Distribuer VC++ Redist ... exécuter le programme d'installation lorsqu'il est déjà installé provoque des problèmes

Y a-t-il un moyen de contourner cela? Peut-être un drapeau sur l'installateur ou quelque chose?

Merci.

Répondre

4

Essayez le/q drapeau http://support.microsoft.com/kb/227091 (en supposant que vous installez via appelant msiexec.exe sur leur redistribuable)

+1

Nous installons vcredist_x86.exe à partir d'ici: http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=fr. Votre réponse est-elle toujours applicable? –

+2

Si/q ne le fait pas, essayez/Q: a /c:"msiexec.exe/qb/i vcredist.msi " Voir http://jrsoftware.innosetup.free-usenet.eu/Microsoft-Visual -C-2008-Redistributable-Files-via-Inno-setup_T46582950_S1 –

1

This thread résolu mes problèmes:

(extrait du commentaire dans l'autre réponse)

3

Pour une raison aucune des réponses ci-dessus a fonctionné pour moi. Cela a toutefois:

[Run] 
Filename: {tmp}\vcredist_x86.exe; Parameters: "/passive /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Installing 2010 RunTime... 
[Files] 
Source: vendor/vcredist_x86.exe; DestDir: {tmp} 

Je suis le conseil pour en exécutant vcredist_x86.exe/?, comme il est indiqué au bas de ce fil: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/a8d4d5b4-7927-4c86-95e8-3cd8b3018ae8/

Comme une autre note, une autre option possible pour la redistribution est juste lien statique contre (votre version de) le msvcrt voir les commentaires dans http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx (bien que MS semble froncer les sourcils sur ce type de liaison statique, au moins, vous n'aurez pas besoin d'un DLL).

Distributing the Visual C++ Runtime Libraries (MSVCRT) peut également être utile.

Notez également que si vous pouvez garantir que vous aurez le contrôle, vous pouvez simplement inclure msvcr100.dll dans le même répertoire que votre exécutable et cela fonctionnerait aussi, mais pas une solution très standard.

+0

n'utiliserait pas simplement 'vcredist_x86.exe/q/norestart' être suffisant? (c'est '/ quiet/norestart' pour VS2012 btw) – stijn

Questions connexes