Déterminer les DLL à redistribuer

Quand vous créez une application qui utilise les DLL de bibliothèque fournies par Visual Studio, ces mêmes DLL doivent aussi être présentes sur les ordinateurs des utilisateurs de votre application pour que celle-ci puisse s’exécuter. Étant donné que la plupart des utilisateurs n’ont probablement pas installé Visual Studio, vous devez leur fournir ces DLL. Visual Studio rend ces DLL disponibles en tant que fichiers Redistribuables que vous pouvez inclure dans le programme d’installation de votre application.

Pour faciliter l’intégration des DLL redistribuables avec votre programme d’installation, elles sont disponibles en tant que packages Redistribuables autonomes. Ces packages sont des exécutables spécifiques à l’architecture qui utilisent le déploiement central pour installer les fichiers Redistribuables sur l’ordinateur d’un utilisateur. Par exemple, vc_redist.x86.exe installe les bibliothèques 32 bits pour les ordinateurs x86 et x64, vc_redist.x64.exe installe les bibliothèques 64 bits pour les ordinateurs x64 et vcredist.ARM64.exe installe les bibliothèques pour les ordinateurs ARM et ARM64. Nous recommandons un déploiement central, car Microsoft peut utiliser le service Windows Update pour mettre à jour ces bibliothèques indépendamment. En plus de la copie dans votre installation de Visual Studio, les packages Redistribuables actuels sont disponibles en téléchargement. Pour obtenir des liens vers les derniers packages Redistribuables pris en charge pour les ensembles d’outils actuels et anciens, consultez les derniers téléchargements Redistribuables Visual C++pris en charge. Des versions antérieures spécifiques des packages Redistribuables peuvent être trouvées en recherchant my.visualstudio.com « Packages redistribuables Visual C++ ».

Pour faciliter l’intégration des DLL redistribuables avec votre programme d’installation, elles sont disponibles en tant que packages Redistribuables autonomes. Ces packages sont des exécutables spécifiques à l’architecture qui utilisent le déploiement central pour installer les fichiers Redistribuables sur l’ordinateur d’un utilisateur. Par exemple, vcredist_x86.exe installe les bibliothèques 32 bits pour les ordinateurs x86 et x64, vcredist_x64.exe installe les bibliothèques 64 bits pour les ordinateurs x64 et vcredist_ARM.exe installe les bibliothèques pour les ordinateurs ARM. Nous recommandons un déploiement central, car Microsoft peut utiliser le service Windows Update pour mettre à jour ces bibliothèques indépendamment. En plus de la copie dans votre installation de Visual Studio, les packages Redistribuables actuels sont disponibles en téléchargement. Pour obtenir des liens vers les derniers packages Redistribuables pris en charge pour les ensembles d’outils actuels et anciens, consultez les derniers téléchargements Visual C++ pris en charge. Des versions antérieures spécifiques des packages Redistribuables peuvent être trouvées en recherchant my.visualstudio.com « Packages redistribuables Visual C++ ».

Nous prenons uniquement en charge l’utilisation d’un package Redistribuable identique ou ultérieur à la version de votre ensemble d’outils. Le numéro de version principal du package Redistribuable que vous déployez doit correspondre à la version de l’ensemble d’outils Visual Studio utilisé pour créer votre application, et la version mineure doit être identique ou ultérieure. Visual Studio 2022, 2019, 2017 et 2015 ont tous des numéros de version d’ensemble d’outils compatibles . Pour ces versions, les fichiers Redistribuables Visual Studio plus récents peuvent être utilisés par les applications créées par un ensemble d’outils à partir d’une version antérieure. Par exemple, les fichiers Redistribuables Visual Studio 2022 peuvent être utilisés par les applications créées à l’aide de l’ensemble d’outils Visual Studio 2017 ou 2015. Bien qu’ils soient compatibles, nous ne prenons pas en charge l’utilisation d’anciens fichiers Redistribuables dans les applications créées à l’aide d’un ensemble d’outils plus récent. Par exemple, l’utilisation des fichiers redistribuables 2017 dans les applications créées à l’aide de l’ensemble d’outils 2019 n’est pas prise en charge.

Il est également possible d’inclure les DLL Redistribuables avec votre programme d’installation dans les modules de fusion. Cette méthode est désormais déconseillée, car les bibliothèques déployées de cette façon ne peuvent pas être mises à jour automatiquement par Windows Update. Les modules de fusion redistribuables ou les modules Microsoft Installer (.msm fichiers), sont des composants facultatifs disponibles dans Visual Studio Installer. Une fois installés, les modules de fusion pour les DLL redistribuables se trouvent dans votre répertoire d’installation de Visual Studio sous %VCToolsRedistDir%\MergeModules\. Dans Visual Studio 2015 et les versions antérieures de Visual Studio, ces fichiers se trouvent dans votre répertoire Program Files ou Program Files (x86) dans un Common Files\Merge Modules sous-répertoire. Pour plus d’informations sur l’utilisation de ces fichiers, consultez Redistribuer des composants à l’aide des modules de fusion.

Les DLL redistribuables individuelles sont également incluses dans votre installation de Visual Studio. Par défaut, ils sont installés dans les dossiers Visual %VCToolsRedistDir%\[architecture]\Microsoft.[toolset].[library] , où [architecture] représente l’architecture cible, [toolset] représente la version de l’ensemble d’outils et [library] représente la bibliothèque.

Il est également possible d’inclure les DLL Redistribuables avec votre programme d’installation dans les modules de fusion. Cette méthode est désormais déconseillée, car les bibliothèques déployées de cette façon ne peuvent pas être mises à jour automatiquement par Windows Update. Les modules de fusion redistribuables pour les DLL redistribuables se trouvent dans votre répertoire Program Files ou Program Files (x86) dans un Common Files\Merge Modules sous-répertoire. Pour plus d’informations sur l’utilisation de ces fichiers, consultez Redistribuer des composants à l’aide des modules de fusion.

Les DLL redistribuables individuelles sont également incluses dans votre installation de Visual Studio. Par défaut, ils sont installés dans le répertoire d’installation de Visual Studio 2015 dans les redist\debug_nonredist\[architecture]\Microsoft.[toolset].[library] dossiers, où [architecture] représente l’architecture cible, [toolset] représente la version de l’ensemble d’outils et [library] est la bibliothèque de débogage qui contient les DLL de débogage.

Utilisez la dernière version de n’importe quel fichier DLL de bibliothèque, package redistribuable ou module de fusion trouvé dans ces répertoires. Vous pouvez utiliser ces bibliothèques pour un déploiement local, en les installant dans le même répertoire que votre application. Nous déconseillons le déploiement local, car vous devez fournir les mises à jour à vos applications déployées. Le déploiement central à l’aide des packages Redistribuables est préféré.

Pour identifier les DLL à redistribuer avec votre application, collectez une liste des DLL dont dépend votre application. Ces DLL sont normalement répertoriées comme entrées de bibliothèque d’importation dans l’éditeur de liens. Certaines bibliothèques, telles que vcruntime et UCRT (Universal C Runtime), sont incluses par défaut. Si votre application ou l’une de ses dépendances utilise LoadLibrary pour charger dynamiquement une DLL, cette DLL peut ne pas être répertoriée dans les entrées de l’éditeur de liens. Une façon de collecter la liste des DLL chargées dynamiquement consiste à exécuter Dependency Walker (depends.exe) sur votre application, comme décrit dans Présentation des dépendances d’une application Visual C++. Malheureusement, cet outil est obsolète et risque de signaler qu’il ne peut pas trouver certaines DLL.

Lorsque vous disposez de la liste des dépendances, comparez-la à la liste liée dans le Redist.txt fichier trouvé sous le répertoire d’installation de Microsoft Visual Studio. Ou, dans la « liste REDIST » des DLL redistribuables référencées dans la section « Fichiers de code distribuables » des termes du contrat de licence logiciel Microsoft pour votre copie de Visual Studio. Pour Visual Studio 2022, consultez Code distribuable pour Visual Studio 2022. Pour Visual Studio 2019, voir Code distribuable pour Visual Studio 2019. Pour Visual Studio 2017, consultez Code distribuable pour Microsoft Visual Studio 2017 (inclut les utilitaires, l’extensibilité et les fichiers BuildServer). Pour Visual Studio 2015, consultez Code distribuable pour Microsoft Visual Studio 2015 et pour le SDK Microsoft Visual Studio 2015 (inclut les utilitaires et les fichiers BuildServer). Pour Visual Studio 2013, la liste est disponible en ligne dans Code distribuable pour Microsoft Visual Studio 2013 et pour le SDK Microsoft Visual Studio 2013.

Dans les versions de Visual Studio antérieures à Visual Studio 2015, la bibliothèque runtime C (CRT) a été incluse en tant que DLL redistribuable, dans msvc[version].dll. Dans Visual Studio 2015, les fonctions du CRT ont été refactorisé dans vcruntime et ucRT. L’UCRT est désormais un composant système dans Windows 10 et versions ultérieures, géré par Windows Update. Il est disponible sur tous les systèmes d’exploitation Windows 10 et versions ultérieures. Pour déployer votre application sur des systèmes d’exploitation antérieurs, vous devrez peut-être redistribuer également la bibliothèque UCRT. Une version antérieure de l’UCRT est incluse dans les fichiers Redistribuables Visual Studio. Cette version est installée uniquement sur les systèmes d’exploitation antérieurs à Windows 10 et uniquement si aucune version de l’UCRT n’est déjà installée. Pour obtenir une version installable de la bibliothèque UCRT pour les systèmes de niveau inférieur en tant que package de mise à jour du système Microsoft, consultez Windows 10 Universal C Runtime dans le Centre de téléchargement Microsoft.

Vous ne pouvez pas redistribuer tous les fichiers inclus dans Visual Studio. Vous n’êtes autorisé à redistribuer que les fichiers spécifiés dans Redist.txt ou la « liste REDIST » en ligne. Vous ne pouvez pas redistribuer les versions de débogage de vos applications, ni les versions de débogage des DLL ou bibliothèques fournies par Microsoft. Vous pouvez uniquement copier des exécutables et des bibliothèques de débogage sur des machines que vous utilisez pour les tests. Pour plus d’informations, consultez Choisir une méthode de déploiement.

Le tableau suivant décrit certaines des DLL Visual C++ dont votre application peut dépendre.

Bibliothèque Visual C++ Description S’applique à
vcruntime[version].dll Bibliothèque Runtime pour le code natif. Applications qui utilisent les services de démarrage et d’arrêt des langages C et C++ standard.
vccorlib[version].dll Bibliothèque Runtime pour le code managé. Applications qui utilisent les services de langage C++ pour le code managé.
msvcp[version].dll et msvcp[version_dotnumber].dll Bibliothèque standard C++ pour le code natif. Applications qui utilisent la bibliothèque standard C++.
concrt[version].dll Bibliothèque runtime d’accès concurrentiel pour le code natif. Applications qui utilisent le runtime d’accès concurrentiel.
mfc[version].dll Bibliothèque MFC (Microsoft Foundation Class). Applications qui utilisent la bibliothèque MFC.
mfc[version][language].dll Ressources de bibliothèque MFC (Microsoft Foundation Class). Applications qui utilisent des ressources de langage spécifiques pour MFC.
mfc[version]u.dll Bibliothèque MFC avec prise en charge Unicode. Applications qui utilisent la bibliothèque MFC et nécessitent une prise en charge Unicode.
mfcmifc80.dll Bibliothèque d'interfaces gérées MFC. Applications qui utilisent la bibliothèque MFC avec les contrôles Windows Forms.
mfcm[version].dll Bibliothèque managée MFC. Applications qui utilisent la bibliothèque MFC avec les contrôles Windows Forms.
mfcm[version]u.dll Bibliothèque managée MFC avec prise en charge Unicode. Applications qui utilisent la bibliothèque MFC avec les contrôles Windows Forms et qui nécessitent une prise en charge Unicode.
vcamp[version].dll Bibliothèque AMP pour le code natif. Applications qui utilisent le code de la bibliothèque C++ AMP.
vcomp[version].dll Bibliothèque OpenMP pour le code natif. Applications qui utilisent le code de la bibliothèque C++ OpenMP.

Remarque

Vous n'avez plus besoin de redistribuer Active Template Library sous forme de DLL distincte. Sa fonctionnalité a été déplacée dans les en-têtes et une bibliothèque statique.

Pour plus d’informations sur la redistribution de ces DLL avec votre application, consultez Redistribuer des fichiers Visual C++. Pour obtenir des exemples, consultez Les exemples de déploiement.

En règle générale, vous n’avez pas besoin de redistribuer des DLL système, car elles font partie du système d’exploitation. Toutefois, il peut y avoir des exceptions, par exemple, lorsque votre application doit s'exécuter sur plusieurs versions de systèmes d'exploitation Microsoft. Dans ce cas, veillez à lire les termes du contrat de licence correspondants. Essayez également d’obtenir les DLL système mises à niveau via Windows Update, service packs ou à l’aide de packages Redistribuables mis à disposition par Microsoft.

Voir aussi

Choix d’une méthode de déploiement
Déploiement d’applications de bureau