Déploiement dans Visual C++ 2010
Lorsque vous déployez une application sur un autre ordinateur, vous devez installer l'application et tous les fichiers bibliothèques desquels elle dépend. Visual C++ 2010 vous propose trois façons de déployer le runtime Visual C++ avec une application : le déploiement central, le déploiement local ou la liaison statique.
Déploiement central
Le déploiement central signifie que vos DLL Visual C++ sont installées dans le répertoire System32. Pour déployer votre application de manière centralisée, vous pouvez utiliser l'un des éléments suivants :
Outil en ligne de commande **VCRedist_**architecture.exe, où architecture est x32, x64 ou ia64.
Modules de fusion.
VCRedist_architecture.exe installe toutes les bibliothèques pour la plateforme matérielle spécifique. Les modules de fusion, ou fichiers .msm, offrent une méthode standard qui permet aux développeurs de fournir une logique d'installation et des composants partagés Windows Installer à leurs applications.
L'avantage principal du déploiement central est sa gestion des cas d'urgence. Si une faille de sécurité critique est découverte, Microsoft met à jour automatiquement les fichiers bibliothèques qui sont déployés de manière centralisée.
Déploiement local
Le déploiement local signifie que les fichiers bibliothèques de votre application sont installés dans le dossier d'application. Pour déployer votre application localement, copiez simplement le fichier exécutable et les fichiers bibliothèques associés dans un dossier.
Différentes versions de bibliothèques peuvent exister côte à côte car les noms de fichiers contiennent le numéro de version (par exemple, la version 10 de la DLL CRT est msvcr100.dll).
Contrairement aux bibliothèques déployées de manière centralisée, les bibliothèques locales ne sont pas mises à jour automatiquement par Microsoft. Si vous décidez d'utiliser le déploiement local, vous devez également implémenter votre propre méthode de la mise à jour des bibliothèques.
Liaison statique
Vous pouvez lier votre application de façon statique à toutes les bibliothèques (telles que CRT, MFC ou ATL) pour produire un fichier exécutable qui n'a pas de dépendances sur les DLL. L'avantage de la liaison statique est que le déploiement de votre application peut être copié d'un ordinateur à un autre, sans devoir copier également les fichiers bibliothèques. Avec la liaison statique, si Microsoft met à jour la bibliothèque liée, votre application ne peut pas utiliser la bibliothèque mise à jour.
Failles de sécurité
En cas de faille de sécurité, Microsoft fournit un correctif logiciel, qui est une version corrigée de la bibliothèque affectée. Il est de la responsabilité de l'auteur de l'application de déployer le correctif logiciel sur les ordinateurs sur lesquels est installée la bibliothèque affectée.
Si la faille de sécurité est jugée critique et requiert une gestion d'urgence, Microsoft utilisera Microsoft Update pour exécuter le correctif sur tous les ordinateurs sur lesquels est installée la bibliothèque Visual C++ spécifique de manière centralisée. Si votre application utilise des fichiers bibliothèques locaux, vous devez prévoir vous-même les cas d'urgence.
Différences entre Visual C++ 2008 et Visual C++ 2010
Les modifications les plus significatives entre Visual C++ 2008 et Visual C++ 2010 sont les suivantes :
Les bibliothèques Visual C++ ne dépendent plus de manifestes et ne sont plus installées dans le dossier WinSxS.
Les applications et bibliothèques dépendantes n'ont plus besoin des informations du manifeste.
Le déploiement local ne requiert plus de manifeste satellite.
Le chargement des bibliothèques Visual C++ locales ne peut pas être redirigé vers un emplacement central.
La gestion en cas d'urgence s'applique uniquement aux bibliothèques déployées de manière centralisée.
Dépannage
Pour diagnostiquer des problèmes liés au chargeur, utilisez depends.exe ou where.exe. L'ordre de chargement des bibliothèques Visual C++ est celui défini par LoadLibraryEx.