Distribuzione in Visual C++ 2010

Quando si distribuisce un'applicazione in un altro computer, è necessario installare l'applicazione e gli eventuali file di libreria da cui dipende. In Visual C++ 2010 è possibile distribuire Visual C++ Runtime con un'applicazione in tre modi: distribuzione centrale, distribuzione locale o collegamento statico.

Distribuzione centrale

Con la distribuzione centrale le DLL di Visual C++ vengono installate nella directory System32. Per distribuire centralmente un'applicazione, è possibile utilizzare una delle opzioni seguenti:

  • Strumento della riga di comando **VCRedist_**architettura.exe, dove architettura è x32, x64 o ia64.

  • Modelli unione.

VCRedist_architettura.exe installa tutte le librerie per la piattaforma hardware specifica. I modelli unione, o file MSM, costituiscono un metodo standard con il quale gli sviluppatori forniscono componenti di Windows Installer condivisi e logica di installazione alle loro applicazioni.

Il vantaggio principale della distribuzione centrale è la manutenzione di emergenza. Se viene individuata un'importante vulnerabilità della sicurezza, Microsoft aggiorna automaticamente i file di libreria distribuiti centralmente.

Distribuzione locale

Con la distribuzione locale i file di libreria dell'applicazione vengono installati nella cartella dell'applicazione. Per distribuire localmente l'applicazione, copiare semplicemente il file eseguibile e i file di libreria associati in una cartella.

Versioni della libreria diverse possono coesistere poiché i nomi dei file contengono il numero di versione (ad esempio la versione 10 della DLL CRT è msvcr100.dll).

A differenza delle librerie distribuite centralmente, le librerie locali non vengono aggiornate automaticamente da Microsoft. Se si decide di utilizzare la distribuzione locale, è necessario implementare anche il metodo di aggiornamento delle librerie.

Collegamento statico

È possibile collegare in modo statico l'applicazione a qualsiasi libreria (ad esempio CRT, MFC o ATL) per produrre un eseguibile senza dipendenze nelle DLL. Il vantaggio di un collegamento statico è la possibilità di copiare la distribuzione dell'applicazione da un computer a un altro senza dover copiare anche i file di libreria. Se si utilizza il collegamento statico e Microsoft aggiorna la libreria a cui si è collegati, l'applicazione non potrà utilizzare la libreria aggiornata.

Vulnerabilità di sicurezza

In caso di vulnerabilità della sicurezza, Microsoft fornisce un aggiornamento rapido che è una versione con patch della libreria interessata. L'autore dell'applicazione è responsabile della distribuzione dell'aggiornamento rapido nei computer in cui è presente la libreria vulnerabile.

Se la vulnerabilità della sicurezza viene ritenuta critica e richiede manutenzione di emergenza, Microsoft utilizzerà Microsoft Update per gestire tutti i computer in cui la libreria di Visual C++ specifica è installata centralmente. Se l'applicazione utilizza file di libreria locali, è necessario creare indicazioni personalizzate per la manutenzione di emergenza.

Differenze tra Visual C++ 2008 e Visual C++ 2010

Le modifiche più significative tra Visual C++ 2008 e Visual C++ 2010 sono:

  • Le librerie di Visual C++ non dipendono più da manifesti e non vengono più installate nella cartella WinSxS.

  • Le librerie e le applicazioni dipendenti non richiedono più le informazioni di manifesto.

  • La distribuzione locale non richiede più un manifesto satellite.

  • Non è possibile reindirizzare il caricamento di librerie di Visual C++ locali a una posizione centrale.

  • La manutenzione di emergenza si applica solo alle librerie distribuite centralmente.

Risoluzione dei problemi

Per diagnosticare problemi relativi al caricatore, utilizzare depends.exe o where.exe. L'ordine di caricamento delle librerie di Visual C++ è quello definito da LoadLibraryEx.

Vedere anche

Altre risorse

Distribuzione (Visual C++)