Déploiement dans Visual C++
L’installation de votre application sur un ordinateur autre que votre ordinateur de développement est appelée déploiement. Quand vous déployez une application Visual C++ sur un autre ordinateur, vous devez installer l’application et tous les fichiers bibliothèques dont elle dépend. Visual Studio offre trois manières de déployer les bibliothèques Visual C++ avec votre application : déploiement centralisé, déploiement local et liaison statique. Le déploiement central place les fichiers de bibliothèque sous le répertoire Windows, où toutes les applications peuvent y accéder automatiquement. Le déploiement local place les fichiers bibliothèques dans le même répertoire que votre application. Vous devez redéployer vous-même les bibliothèques déployées localement pour les mettre à jour. La liaison statique lie le code des bibliothèques dans votre application. Vous devez recompiler et redéployer votre application pour tirer parti des mises à jour apportées aux bibliothèques lorsque vous utilisez la liaison statique.
Dans Visual Studio 2015, la bibliothèque Microsoft C Runtime a été refactorisée en composants de bibliothèque locale spécifique à une version et en une nouvelle bibliothèque Universal Runtime C qui fait désormais partie de Windows. Pour plus d’informations sur le déploiement de Universal CRT, consultez Déploiement de Universal CRT.
Déploiement central
Dans le déploiement central, les fichiers DLL de bibliothèque sont installés dans le Windows\System32
répertoire, ou pour les fichiers de bibliothèque 32 bits sur les systèmes x64, le Windows\SysWow64
répertoire. Les fichiers de bibliothèque déployés de manière centralisée sont disponibles pour d’autres applications.
Pour déployer de façon centralisée des bibliothèques Visual C++, vous pouvez utiliser une de ces deux sources pour les fichiers à installer :
Fichiers de package redistribuables. Ces fichiers sont des exécutables en ligne de commande autonomes qui contiennent toutes les bibliothèques Redistribuables Visual C++ sous forme compressée. Les derniers packages Redistribuables sont disponibles à partir des téléchargements Redistribuables Microsoft Visual C++ Les derniers téléchargements pris en charge. Lorsque vous utilisez les packages Redistribuables pour le déploiement central, Windows Update peut traiter les bibliothèques indépendamment.
Modules de fusion redistribuables (
.msm
fichiers), que vous pouvez inclure dans le fichier Windows Installer (.msi
) de votre application. Cette méthode est déconseillée, car les bibliothèques déployées de cette façon ne peuvent pas être mises à jour automatiquement par Windows Update. Pour plus d’informations, consultez Redistribuer à l’aide de modules de fusion.
Un fichier de package redistribuable installe toutes les bibliothèques Visual C++ pour une architecture système particulière. Par exemple, si votre application est générée pour x64, vous pouvez utiliser le vcredist_x64.exe
package pour installer toutes les bibliothèques Visual C++ utilisées par votre application. Vous pouvez programmer le programme d’installation de votre application pour exécuter le package en tant que prérequis avant d’installer votre application.
Le déploiement central à l’aide d’un package Redistribuable permet à Windows Update de mettre à jour automatiquement les bibliothèques Visual C++. Pour une sécurité et des fonctionnalités continues, nous vous recommandons d’utiliser les DLL de bibliothèque dans votre application au lieu de bibliothèques statiques, et d’utiliser des packages redistribuables et un déploiement central au lieu du déploiement local.
Déploiement local
Dans un déploiement local, les fichiers bibliothèques sont installés dans le dossier de votre application avec le fichier exécutable. Différentes versions des bibliothèques Redistribuables Visual C++ peuvent être installées dans le même dossier, car le nom de fichier de chaque version inclut son numéro de version. Par exemple, la version 12 de la bibliothèque runtime C++ est msvcp120.dll
, et la version 14 est msvcp140.dll
.
Les extensions d’une bibliothèque peuvent être réparties sur plusieurs DLL supplémentaires, appelées bibliothèques de points. Par exemple, certaines fonctionnalités de la bibliothèque standard publiée dans Visual Studio 2017 version 15.6 ont été ajoutées dans msvcp140_1.dll
, pour préserver la compatibilité ABI de msvcp140.dll
. Si vous utilisez Visual Studio 2017 version 15.6 (ensemble d’outils 14.13) ou version ultérieure, vous devrez peut-être déployer localement ces bibliothèques points et la bibliothèque principale. Ces bibliothèques de points distinctes seront éventuellement ajoutées à la bibliothèque de base, lorsque l’ABI change.
Étant donné que Microsoft ne peut pas mettre à jour automatiquement les bibliothèques Visual C++ déployées localement, nous déconseillons le déploiement local de ces bibliothèques. Si vous décidez d’utiliser le déploiement local des bibliothèques Redistribuables, nous vous recommandons d’implémenter votre propre méthode de mise à jour automatique des bibliothèques déployées localement.
Liaison statique
En plus des bibliothèques liées dynamiquement, Visual Studio fournit la plupart de ses bibliothèques sous forme de bibliothèques statiques. Vous pouvez lier statiquement une bibliothèque statique à votre application, c’est-à-dire lier le code objet de la bibliothèque directement dans l’application. La liaison statique crée un binaire unique sans dépendance DLL, afin que vous n’ayez pas à déployer séparément les fichiers de bibliothèque Visual C++. Toutefois, nous vous déconseillons cette approche, car les bibliothèques liées statiquement ne peuvent pas être mises à jour en place. Pour mettre à jour une bibliothèque liée lorsque vous utilisez la liaison statique, vous devez recompiler et redéployer votre application.
Dépannage de problèmes de déploiement
L’ordre de chargement des bibliothèques Visual C++ dépend du système. Pour diagnostiquer les problèmes de chargeur, utilisez depends.exe
ou where.exe
. Pour plus d’informations, consultez l’ordre de recherche de la bibliothèque de liens dynamiques (Windows).
Voir aussi
Déploiement d’applications de bureau
Déploiement de Universal CRT