Choix d'une méthode de déploiement
Dans la plupart des cas, le déploiement d'applications Visual C++ s'effectue avec le déploiement Windows Installer.Pour plus d'informations sur les méthodes de déploiement prises en charge par Visual Studio et leurs alternatives, consultez Choix d'une stratégie de déploiement et Deployment Alternatives.Le déploiement ClickOnce pour les applications natives Visual C++ n'est pas pris en charge dans Visual Studio 2010 ; toutefois, il est possible de déployer des applications Visual C++ via ClickOnce sur la ligne de commande.Pour plus d'informations, consultez Déploiement de ClickOnce pour les applications Visual C++.
Les bibliothèques Visual C++ sont des DLL partagées
Visual Studio 2010 installe des bibliothèques Visual C++ en tant que DLL partagées dans le répertoire %windir%\system32.Pour vous assurer que votre application Visual C++ s'exécutera sur un ordinateur sur lequel n'est pas installé Visual C++, vous devrez peut-être redistribuer des DLL Visual C++ avec votre application et vérifier qu'elles sont installées sur l'ordinateur cible.
Redistribution des bibliothèques Visual C++
Il existe trois façons de redistribuer les DLL Visual C++ :
Nous vous recommandons d'utiliser Visual C++ Redistributable Package (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) pour installer toutes les bibliothèques Visual C++ en tant que DLL partagées dans le répertoire %windir%\system32.Visual Studio installe ce package dans le dossier %WindowsSdkDir%\Bootstrapper\Packages.Vous pouvez également le télécharger à partir du Centre de téléchargement Microsoft.Pour obtenir un exemple illustrant l'utilisation de ce package, consultez Procédure pas à pas : déploiement d'une application Visual C++ à l'aide de Visual C++ Redistributable Package.
Utilisez les modules de fusion redistribuables Visual C++ pour installer une bibliothèque Visual C++ particulière en tant que DLL partagées dans la répertoire %windir%\system32.L'accès à ce dossier requiert l'exécution du programme d'installation par un utilisateur disposant de droits d'administration.Pour plus d'informations, consultez Redistribution à l'aide de modules de fusion.Un exemple de ce déploiement se trouve dans Procédure pas à pas : déploiement d'une application Visual C++ à l'aide d'un projet d'installation.
Installez une DLL Visual C++ particulière dans le même dossier que l'application à l'aide des fichiers fournis dans le répertoire Program Files\Microsoft Visual Studio 10.0\VC\Redist .Cette solution est recommandée pour activer l'installation d'applications par les utilisateurs qui n'ont pas de droits d'administration ou lorsqu'il doit être possible d'exécuter une application à partir d'un partage.
Lors de l'installation des bibliothèques Visual C++ à l'aide des modules de fusion redistribuables, les DLL sont déployées en tant que DLL partagées dans le répertoire %windir%\system32.L'accès à ce dossier requiert l'exécution du programme d'installation par un utilisateur disposant de droits d'administration.
Si une installation est effectuée par un utilisateur qui ne dispose pas de droits d'administration, l'installation ne parviendra pas à déployer les DLL Visual C++ et l'application ne s'exécutera pas.Par ailleurs, certains produits peuvent autoriser l'installation sur une base individuelle, mais les modules de fusion installent les bibliothèques dans des emplacements partagés et affectent tous les utilisateurs du système.Dans les deux cas, la technique prise en charge est d'installer les DLL requises dans le répertoire d'application d'un utilisateur particulier.
Avec cette technique, il suffit de copier les DLL dans le dossier local de l'application.Le chargeur du système d'exploitation, lors de l'exécution de l'application, utilise l'ordre de recherche décrit dans LoadLibraryEx.
Une redistribution incorrecte des bibliothèques Visual C++ peut provoquer des erreurs pendant l'exécution d'une application qui en dépend.
Privilégiez la liaison dynamique à la liaison statique
Il n'est pas recommandé de redistribuer des applications C/C++ qui sont statiquement liées aux bibliothèques Visual C++.C'est une erreur courante de penser qu'en liant statiquement votre programme aux bibliothèques de Visual C++, il est possible d'améliorer sensiblement les performances d'une application.Toutefois, l'impact sur les performances du chargement dynamique des bibliothèques Visual C++ est insignifiant dans la plupart des cas.En outre, la liaison statique ne permet pas d'assurer la maintenance de l'application et de ses bibliothèques dépendantes par l'auteur de l'application ou Microsoft.Considérons, par exemple, une application liée statiquement à une bibliothèque donnée, s'exécutant sur un ordinateur client avec une nouvelle version de cette bibliothèque.L'application utilise toujours le code de la version antérieure de cette bibliothèque et ne bénéficie pas des améliorations de la bibliothèque, par exemple les améliorations de sécurité.Il est vivement recommandé aux auteurs d'applications C/C++ de réfléchir à un scénario de maintenance avant d'opter pour la liaison statique avec les bibliothèques dépendantes, et d'utiliser si possible la liaison dynamique.
Voir aussi
Concepts
Choix d'une stratégie de déploiement
Sécurité et déploiement ClickOnce