Choisir une méthode de déploiement

Nous vous recommandons d’utiliser Windows Installer pour le déploiement. Windows Installer prend en charge l'installation, la réparation, et la désinstallation. Il prend également en charge la mise à jour atomique des fichiers, des dépendances et des entrées de registre de l'application. Sauf si votre application Visual C++ est autonome et peut être déployée à l’aide d’une commande de copie, utilisez Windows Installer.

Remarque

Le déploiement ClickOnce des applications natives Visual C++ est certes possible dans Visual Studio, mais il nécessite des étapes supplémentaires. Pour plus d’informations, consultez déploiement ClickOnce pour les applications Visual C++.

Les bibliothèques Visual C++ sont des DLL partagées

Étant donné que les bibliothèques Visual C++ sont installées dans le %windir%\system32\ répertoire par le programme d’installation de Visual Studio, lorsque vous développez une application Visual C++ qui en dépend, elle s’exécute comme prévu. Toutefois, la plupart des ordinateurs n’ont pas installé Visual Studio. Pour déployer l’application sur ces ordinateurs, nous vous recommandons de vous assurer que les bibliothèques sont installées avec votre application.

Bibliothèques Visual C++ redistribuables

Dans vos déploiements, vous pouvez redistribuer n'importe quelle version d'une bibliothèque Visual C++ dont la redistribution est autorisée. Voici trois manières de les déployer :

  • Déploiement central à l’aide de packages Redistribuables Visual C++. Cette approche est celle que nous vous recommandons. Un package Redistribuable Visual C++ est un exécutable qui installe des bibliothèques Visual C++ en tant que DLL partagées dans %windir%\system32\. (L’installation dans ce dossier nécessite des droits d’administrateur.) Vous pouvez créer un programme d’amorçage, un script ou un programme d’installation qui exécute le package Redistributable avant d’installer votre application sur l’ordinateur cible. Les packages redistribuables sont disponibles pour les plateformes x86, x64, ARM64 et ARM. Pour plus d’informations sur l’emplacement où rechercher les fichiers de package, consultez Localiser les fichiers redistribuables. Pour plus d’informations sur l’utilisation d’un package Redistribuable, consultez Procédure pas à pas : déploiement d’une application Visual C++ à l’aide du package redistribuable Visual C++.

  • Déploiement central à l’aide de modules de fusion. 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. Vous pouvez utiliser des modules de fusion pour installer une bibliothèque Visual C++ particulière en tant que DLL partagée dans %windir%\system32\. (L’installation dans ce dossier nécessite des droits d’administrateur.) Les modules de fusion font partie du fichier d’installation .msi de votre application. Étant donné qu’ils ont été dépréciés, les modules de fusion Redistribuable Visual C++ sont un composant facultatif pouvant être installé dans Visual Studio 2022 et 2019. Ils sont installés par défaut dans Visual Studio 2017 et 2015. Pour plus d’informations, consultez Où rechercher des fichiers de module de fusion.

  • Déploiement local. Le déploiement local n’est pas recommandé dans la plupart des cas. Dans le déploiement local, vous copiez des DLL Visual C++ particulières à partir de votre installation de Visual Studio, généralement dans \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\laquelle vous les installez sur des ordinateurs cibles dans le même dossier que l’exécutable de l’application. Vous pouvez utiliser cette méthode de déploiement pour activer l’installation par les utilisateurs qui n’ont pas de droits d’administrateur. Ou, pour les applications qui peuvent être exécutées à partir d’un lecteur numérique ou d’un partage réseau.

Si un déploiement utilise des modules de fusion redistribuables, l’utilisateur qui installe l’application doit disposer de droits d’administration. Sinon, les DLL Visual C++ ne sont pas installées et l’application peut ne pas s’exécuter. Les programmes d’installation d’applications qui autorisent l’installation par utilisateur installent les bibliothèques dans un emplacement partagé qui a un impact sur tous les utilisateurs du système. Vous pouvez utiliser le déploiement local pour installer les DLL Visual C++ requises dans le répertoire de l’application d’un utilisateur particulier. Cette approche n’affectera pas d’autres utilisateurs ni exigera des droits d’administrateur. Comme il peut créer des problèmes de serviceabilité, nous vous déconseillons de déployer localement des DLL redistribuables Visual C++.

Une redistribution incorrecte des bibliothèques Visual C++ peut provoquer des erreurs pendant l'exécution d'une application qui en dépend. Lorsque le système d’exploitation charge l’application, il utilise l’ordre de recherche décrit dans LoadLibraryEx.

La liaison dynamique est meilleure que la liaison statique

Nous vous recommandons d’éviter la liaison statique quand vous redistribuez des bibliothèques Visual C++. Bien que la liaison statique n’améliore presque jamais de manière significative les performances des applications, elle en rend la maintenance presque toujours plus coûteuse. Par exemple, considérez une application liée statiquement avec une bibliothèque mise à jour avec des améliorations de sécurité. L’application ne peut pas bénéficier, sauf si elle est recompilée et redéployée. Au lieu de cela, nous vous recommandons de lier dynamiquement vos applications aux bibliothèques dont elles dépendent. Les bibliothèques peuvent ensuite être mises à jour partout où elles sont déployées.

Voir aussi

Déploiement d’applications de bureau
Sécurité et déploiement ClickOnce
Exemples de déploiement