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.