Partager via


Redistribution et liaison d'une application à des bibliothèques spécifiques

Mise à jour : Juillet 2008

Les bibliothèques pour Visual Studio sont souvent mises à jour après une publication. Cela peut être le cas, par exemple, lorsque vous installez un Service Pack. Les applications conçues avec les bibliothèques mises à jour peuvent dépendre de certaines modifications apportées dans les versions les plus récentes. L'application peut se comporter de manière inattendue si vous la transférez à un utilisateur qui n'a pas installé les mêmes bibliothèques. Pour éviter ce comportement inattendu, vous pouvez lier votre application à une version spécifique des bibliothèques.

Comportement de liaison par défaut

Cette section décrit le comportement par défaut des applications compilées avec Visual C++ 2008 et versions ultérieures. Lorsque vous compilez une application, elle est liée à la version Release des bibliothèques disponibles. Ce principe s'applique même si une version ultérieure est installée sur l'ordinateur. Par exemple, si Visual C++ 2008 SP1 est installé sur votre ordinateur, les applications que vous compilez sur cet ordinateur continuent de dépendre de la version Release d'origine de Visual C++ 2008.

Ce comportement est sans conséquence si vous déployez votre application en l'installant à un emplacement central. Avec cette méthode de distribution, en effet, les bibliothèques les plus récentes sont toujours disponibles pour l'utilisateur final. Toutefois, si vous utilisez une méthode de déploiement local, par exemple avec des assemblys privés, comme décrit dans la rubrique Comment : déployer à l'aide de XCopy, ce comportement est important.

Le comportement de liaison par défaut vous permet de recompiler votre programme après avoir obtenu une nouvelle version et de distribuer le nouveau fichier exécutable. Les utilisateurs finals qui ont déjà installé les bibliothèques nécessaires auront uniquement besoin du nouveau fichier exécutable ; vous n'aurez pas à empaqueter et réinstaller les bibliothèques les plus récentes.

Remarque :

Si votre application dépend d'une fonctionnalité introduite dans la version la plus récente, vous devez distribuer et réinstaller les nouvelles bibliothèques, faute de quoi l'application ne s'exécutera pas.

Comment créer une liaison avec des versions spécifiques

Si vous souhaitez forcer votre application à exiger l'installation des bibliothèques les plus récentes sur votre ordinateur, utilisez une ou plusieurs des lignes de code suivantes :

#define _BIND_TO_CURRENT_CRT_VERSION 1;
#define _BIND_TO_CURRENT_ATL_VERSION 1;
#define _BIND_TO_CURRENT_MFC_VERSION 1;
#define _BIND_TO_CURRENT_OPENMP_VERSION 1;

Utilisez la ligne de code suivante pour lier votre application à la version actuelle de toutes vos bibliothèques Visual C++. Il s'agit d'une union de toutes les lignes de code précédentes.

#define _BIND_TO_CURRENT_VCLIBS_VERSION 1;
Remarque :

Nous vous recommandons de définir ces macros au niveau de la ligne de commande. Si vous préférez inclure les définitions dans le code, vous devez les placer au tout début de chaque unité de compilation (par exemple, les premières lignes de stdafx.h).

Lorsque vous liez votre application à un jeu de bibliothèques, elle ne s'exécute pas sur un ordinateur qui possède une version antérieure de ces bibliothèques. Si vous liez votre application à une version minimale spécifique, nous vous recommandons de fournir votre application avec la version requise des bibliothèques.

Voir aussi

Concepts

Redistribution des fichiers Visual C++

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'une rubrique.

Modifications de fonctionnalités dans le SP1.