Share via


Scegliere un metodo di distribuzione

È consigliabile usare Windows Installer per la distribuzione. Windows Installer supporta l'installazione, il ripristino e la disinstallazione, oltre all'aggiornamento atomico dei file, delle dipendenze e delle voci del Registro di sistema dell'applicazione. A meno che l'applicazione Visual C++ non sia autonoma e possa essere distribuita usando un comando di copia, usare Windows Installer.

Nota

Sebbene la distribuzione ClickOnce per applicazioni Visual C++ native sia possibile in Visual Studio, richiede passaggi aggiuntivi. Per altre informazioni, vedere Distribuzione ClickOnce per applicazioni Visual C++.

Le librerie di Visual C++ sono DLL condivise

Poiché le librerie di Visual C++ vengono installate nella %windir%\system32\ directory dal programma di installazione di Visual Studio, quando si sviluppa un'applicazione Visual C++ che dipende da tali librerie, verrà eseguita come previsto. Tuttavia, la maggior parte dei computer non dispone di Visual Studio installato. Per distribuire l'applicazione in questi computer, è consigliabile assicurarsi che le librerie siano installate insieme all'applicazione.

Librerie Visual C++ ridistribuibili

Nelle distribuzioni è possibile ridistribuire qualsiasi versione di una libreria di Visual C++ concessa in licenza per la ridistribuzione. Di seguito sono descritti tre modi per distribuirla:

  • Distribuzione centrale tramite pacchetti ridistribuibili di Visual C++. Questo approccio è quello consigliato. Un pacchetto Ridistribuibile di Visual C++ è un eseguibile che installa le librerie di Visual C++ come DLL condivise in %windir%\system32\. L'installazione in questa cartella richiede diritti di amministratore. È possibile creare un programma di avvio automatico, uno script o un programma di installazione che esegue il pacchetto Redistributable prima di installare l'applicazione nel computer di destinazione. I pacchetti ridistribuibili sono disponibili per le piattaforme x86, x64, ARM64 e ARM. Per altre informazioni sulla posizione in cui trovare i file di pacchetto, vedere Individuare i file ridistribuibili. Per informazioni su come usare un pacchetto ridistribuibile, vedere Procedura dettagliata: Distribuzione di un'applicazione Visual C++ tramite visual C++ Redistributable Package.

  • Distribuzione centrale tramite moduli di merge. Questo metodo è deprecato perché le librerie distribuite in questo modo non possono essere aggiornate automaticamente da Windows Update. È possibile usare i moduli di merge per installare una particolare libreria di Visual C++ come DLL condivisa in %windir%\system32\. L'installazione in questa cartella richiede diritti di amministratore. I moduli di merge diventano parte del file del programma di installazione per l'applicazione .msi . Poiché sono stati deprecati, i moduli di merge ridistribuibili di Visual C++ sono un componente facoltativo installabile in Visual Studio 2022 e 2019. Vengono installati per impostazione predefinita in Visual Studio 2017 e 2015. Per altre informazioni, vedere Dove trovare i file di modulo di unione.

  • Distribuzione locale. La distribuzione locale non è consigliata nella maggior parte delle situazioni. Nella distribuzione locale copiare specifiche DLL di Visual C++ dall'installazione di Visual Studio, in genere in , e installarle nei \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\computer di destinazione nella stessa cartella dell'eseguibile dell'applicazione. È possibile usare questo metodo di distribuzione per abilitare l'installazione da parte degli utenti che non dispongono dei diritti di amministratore. In alternativa, per le applicazioni che possono essere eseguite da un'unità personale o da una condivisione di rete.

Se una distribuzione usa i moduli merge Redistributable, l'utente che installa l'app deve disporre dei diritti amministrativi. In caso contrario, le DLL di Visual C++ non sono installate e l'applicazione potrebbe non essere eseguita. I programmi di installazione delle applicazioni che consentono l'installazione in base all'utente installano le librerie in un percorso condiviso che influisce su tutti gli utenti del sistema. È possibile usare la distribuzione locale per installare le DLL di Visual C++ necessarie nella directory di un'applicazione di un determinato utente. Questo approccio non influisce su altri utenti o richiede diritti di amministratore. Poiché può creare problemi di gestibilità, non è consigliabile distribuire localmente le DLL ridistribuibili di Visual C++.

L'errata distribuzione delle librerie di Visual C++ può causare errori di runtime durante l'esecuzione di un'applicazione che dipende da tali librerie. Quando il sistema operativo carica l'applicazione, usa l'ordine di ricerca descritto in LoadLibraryEx.

Il collegamento dinamico è migliore del collegamento statico

Per la ridistribuzione delle librerie di Visual C++, è consigliabile evitare il collegamento statico. Sebbene il collegamento statico non migliori quasi mai le prestazioni dell'applicazione, quasi sempre rende più costosa la manutenzione. Si consideri, ad esempio, un'applicazione collegata staticamente con una libreria aggiornata con miglioramenti della sicurezza. L'applicazione non può trarre vantaggio a meno che non sia ricompilata e ridistribuibile. È invece consigliabile collegare dinamicamente le applicazioni alle librerie da cui dipendono. È quindi possibile aggiornare le librerie ovunque vengano distribuite.

Vedi anche

Distribuzione di applicazioni desktop
Sicurezza e distribuzione di ClickOnce
Esempi di distribuzione