Redistribution des fichiers Visual C++

Mise à jour : novembre 2007

Lorsque vous développez une application à l'aide de Visual C++, vous avez l'avantage de travailler sur un ordinateur qui est non seulement un bon environnement de développement, mais également un environnement idéal sur lequel exécuter et tester des applications. Toutefois, lorsque vous souhaitez déployer votre application sur d'autres ordinateurs, vous devez redistribuer tous les fichiers nécessaires pour prendre en charge l'application sur le système cible. Pour plus d'informations sur les fichiers devant être redistribués avec votre application, consultez Exemples de déploiement et Détermination des DLL à redistribuer.

Seuls certains fichiers Visual C++ peuvent être redistribués avec votre application. Consultez les Termes du contrat de licence logiciel Microsoft pour Visual Studio 2005 et le fichier Redist.txt pour savoir quels fichiers peuvent être redistribués avec votre application. CLUF.txt se trouve dans le répertoire \Setup sur le premier CD-ROM ou le DVD du produit Visual C++ 2008 et Redist.txt se trouve dans le répertoire Program Files\Microsoft Visual Studio 2005 sur le second CD-ROM ou le DVD.

Les fichiers Visual C++ peuvent être redistribués en utilisant les modules de fusion redistribuables fournis ou le Visual C++ Redistributable Package, ou en déployant des assemblys Visual C++ spécifiques comme assemblys côte à côte privés dans le dossier local de l'application.

Remarque :

Un dossier local de l'application est un dossier qui contient un fichier exécutable de l'application. Les assemblys côte à côte privés doivent être déployés dans le dossier local de l'application ou un de ses sous-dossiers. Pour plus d'informations sur les règles d'affectation de noms qui s'appliquent aux sous-dossiers qui contiennent des assemblys côte à côte privés, consultez Séquence de recherche d'assemblys.

Dans le premier cas, un module de fusion avec un assembly Visual C++ spécifique doit être inclus dans un package Windows Installer ou dans un programme d'installation similaire servant à déployer cette application sur un autre ordinateur. Pour plus d'informations, consultez Redistribution à l'aide de modules de fusion. Un exemple de ce déploiement se trouve dans Comment : déployer un projet d'installation et de déploiement.

Visual C++ Package Redistribuable (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) doit être exécuté sur le système cible comme condition préalable à l'installation de l'application. Ce package installe et enregistre toutes les bibliothèques Visual C++.

Remarque :

Nous vous recommandons d'utiliser ce package pour redistribuer des bibliothèques Visual C++ pour les applications que vous avez générées avec Visual C++ Express et pour les cas dans lesquels vous souhaitez déployer toutes les bibliothèques Visual C++ en même temps.

Pour obtenir un exemple illustrant l'utilisation de ce package, consultez Comment : déployer à l'aide de XCopy.

Lorsque vous déployez les bibliothèques Visual C++ comme assembly côte à côte privé, toutes les DLL et le fichier manifeste qui composent cet assembly doivent être ajoutés à Windows Installer ou à un package d'installation similaire. Ils doivent également être déployés sur l'ordinateur cible dans un sous-répertoire du dossier local de l'application, en respectant les règles de déploiement des assemblys privés. Les informations sur les DLL et les fichiers manifeste Visual C++ faisant partie des assemblys Visual C++ figurent dans Visual C++ Libraries as Shared Side-by-Side Assemblies. Une description des règles que vous devez respecter lors du déploiement des assemblys privés en vue du chargement au moment de l'exécution est fournie dans Séquence de recherche d'assemblys. Pour obtenir un exemple du déploiement des bibliothèques Visual C++ comme assembly privé, consultez Comment : déployer à l'aide de XCopy.

Erreurs d'exécution potentielles

Si un manifeste est présent dans votre application mais qu'une bibliothèque Visual C++ requise n'est pas installée dans le dossier WinSxS, vous pouvez obtenir l'un des messages d'erreur suivants selon la version de Windows sur laquelle vous essayez d'exécuter votre application :

  • L'application n'a pas réussi à s'initialiser correctement (0xc0000135).

  • Cette application n'a pas démarré car la configuration de l'application est incorrecte. La réinstallation de cette application peut corriger ce problème.

  • Le système ne peut exécuter le programme spécifié.

Si aucun manifeste n'est présent dans votre application, l'erreur que vous obtenez est fonction du fait que la bibliothèque Visual C++ dont votre application dépend est déployée ou pas dans le dossier local d'application ou dans un dossier partagé tel que le dossier System ou WinSxS.

Remarque :

Il n'est pas pris en charge pour redistribuer les applications C/C++ qui sont générées sans un manifeste. Les bibliothèques Visual C++ ne peuvent pas être utilisées par les applications de C/C++ sans un manifeste qui lie l'application à ces bibliothèques. Pour plus d'informations, consultez Choix d'une méthode de déploiement.

Si une DLL de bibliothèque Visual C++ (par exemple MSVCR90.DLL) est accessible (installée dans le dossier local de l'application ou dans le dossier System), vous pouvez recevoir le message d'erreur suivant :

R6034 Une application a essayé de charger une bibliothèque Microsoft C Runtime de façon incorrecte.

Si la DLL n'est pas accessible et que Windows ne peut pas charger cette DLL pour votre application, vous pouvez recevoir le message d'erreur suivant :

Cette application n'a pas pu démarrer car MSVCR90.dll est introuvable. La réinstallation de cette application peut corriger ce problème.

Pour résoudre ces erreurs, vous devez vous assurer que votre application est générée correctement et que les bibliothèques Visual C++ sont déployées correctement sur le système cible. Pour identifier la cause première de ces erreurs d'exécution, suivez les étapes présentées dans Dépannage d'applications isolées C/C++ et d'assemblys côte à côte.

Dans cette section

Voir aussi

Concepts

Exemples de déploiement

Dépannage d'applications isolées C/C++ et d'assemblys côte à côte

Autres ressources

Déploiement (C++)