22

Ho creato un programma di installazione con Visual Studio 2010 Versione 10.0.40.219.1 SP1 Rel. La mia applicazione è compilata/compilata per x86 e richiede le librerie di runtime VC++. Pertanto, il progetto di installazione è configurato con le librerie di runtime VC++ come prerequisito.Il prerequisito di Visual C++ 2010 Runtime Libraries continua a comparire su un programma di installazione creato con VS 2010

Ogni volta che eseguo l'installazione, viene visualizzato il popup "I seguenti componenti verranno installati sulla macchina." "Librerie di runtime di Visual C++ 2010 (x86)". La prima volta che viene installato come previsto. La seconda e successive volte mi chiede se riparare o rimuovere VC++ 2010.

Questo popup deve essere visualizzato solo una volta, la prima volta che viene rilevato che VC++ ridistribuibile non è installato.

Qualcuno ha visto questo? Qualcuno sa come posso risolvere questo?

Soluzione:

La risposta ho accettato mi ha dato quello che mi serviva per risolvere il problema. Ecco i dettagli su cosa ho fatto per risolvere questo problema, che in effetti era molto semplice. Ho modificato il file:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\product.xml 

In questo file si trova la seguente:

<InstallChecks> 
    <MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/> 
</InstallChecks> 

È possibile che questo contiene il codice prodotto errato. Sostituire il precedente con il codice di prodotto corretto per il C++ 2010 SP1 Redistributable visivo come segue:

<InstallChecks> 
    <MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/> 
</InstallChecks> 

Il collegamento here mostra i codici dei prodotti corretti per i vari VC++ 2010 Ridistribuibili.

+0

possibile duplicato di [Setup.exe che installa i prerequisiti anche se sono preinstallati] (http://stackoverflow.com/questions/4797057/setup-exe-installing-prerequisites-even-if-the-are-preinstalled) – wimh

+2

È vero, era un duplicato, ma non è stata data risposta. Questo post, ora ha la risposta e i passaggi necessari per risolvere il problema. – Elan

risposta

14

Ciò si verifica perché i criteri di rilevamento dei prerequisiti non sono corretti.

Una soluzione è creare il proprio prerequisito personalizzato con un criterio corretto. Forse questo articolo aiuterà: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx

I progetti di installazione di Visual Studio non supportano questo. Ma può essere fatto generando manualmente i manifesti richiesti.

È possibile trovare la struttura manifesta qui: http://msdn.microsoft.com/en-us/library/ms229223(VS.80).aspx

Questi manifesti possono essere generate automaticamente con lo strumento Bootstrapper Manifest Generator.

Dopo aver generato i manifesti del pacchetto, è possibile aggiungere tutti i file (compreso il pacchetto) in una cartella separata nella cartella di Visual Studio prerequisiti, ad esempio:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\ 

È possibile selezionare il prerequisito nella vostra imposta la pagina delle proprietà del progetto.

+0

Ho copiato la cartella vcredist_x86 in vcredist_x86_fixed e rinominato una stringa nel file.file xml della cartella "en" che pensavo fosse il testo mostrato nella finestra di dialogo Prerequisiti, ma non ci sono voci aggiuntive in quella finestra di dialogo. Ho riavviato VS. Devo fare qualcosa oltre a far apparire il nuovo pacchetto nella finestra di dialogo dei prerequisiti? – angularsen

+0

Assicurarsi che il nuovo prerequisito utilizzi un nome personalizzato. O almeno cancellare la cartella dei prerequisiti originale. I prerequisiti con i nomi duplicati non sono supportati. –

Problemi correlati