2010-03-17 8 views
6

Utilizzando l'installazione Inno, distribuiamo VC++ redistributable con la nostra app in modo che possiamo eseguirlo automaticamente. Abbiamo scoperto che eseguirlo su un sistema in cui è già installato ci chiede di riparare/annullare l'installazione che confonderà totalmente gli utenti.Distribuire VC++ Redist ... eseguire il programma di installazione quando già installato causa problemi

C'è un modo per aggirare questo? Forse una bandiera sull'installer o qualcosa del genere?

Grazie.

risposta

4

Prova il/q bandiera http://support.microsoft.com/kb/227091 (supponendo che si sta installando via chiamando msiexec.exe sul loro ridistribuibile)

+1

Stiamo installando vcredist_x86.exe da qui: http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en. La tua risposta è ancora applicabile? –

+2

Se/q non lo fa, prova/Q: a /c:"msiexec.exe/qb/i vcredist.msi " Vedere http://jrsoftware.innosetup.free-usenet.eu/Microsoft-Visual -C-2008-Redistributable-Files-via-Inno-setup_T46582950_S1 –

1

This thread risolto i miei problemi:

(tratto dal commentare nel altra risposta)

3

Per qualche motivo nessuna delle risposte precedenti ha lavorato per me. Questo fatto, tuttavia:

[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} 

ho preso il suggerimento per eseguendo vcredist_x86.exe/?, come indicato in fondo a questa discussione: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/a8d4d5b4-7927-4c86-95e8-3cd8b3018ae8/

Come ulteriore nota, un'altra possibile opzione per la ridistribuzione è solo un collegamento statico contro (la tua versione di) msvcrt vedi commenti in http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx (anche se MS sembra accigliato su questo tipo di collegamento statico, almeno non avrai bisogno di una dll).

Distributing the Visual C++ Runtime Libraries (MSVCRT) potrebbe anche essere utile.

Si noti inoltre che se si è in grado di garantire il controllo, è possibile includere msvcr100.dll nella stessa directory del file eseguibile e che funzionerebbe anche se non è una soluzione standard.

+0

non sarebbe sufficiente usare 'vcredist_x86.exe/q/norestart' essere sufficiente? (questo è '/ quiet/norestart' per VS2012 btw) – stijn

Problemi correlati