Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Importante
Dans Visual Studio 2019 et versions ultérieures, les modules de fusion pour les fichiers Redistribuables Visual C++ sont déconseillés. Nous vous déconseillons de les utiliser pour le déploiement d’applications. Windows Update ne peut pas mettre à jour les fichiers redistribuables installés à l'aide de modules de fusion, car le mécanisme de détection dépend de connaître les détails du package d'installation.
Les packages Redistribuables Visual C++ sont connus pour chaque version, mais les packages qui utilisent des modules de fusion sont générés par l’utilisateur. Microsoft ne peut pas connaître les détails des packages générés par l’utilisateur. Au lieu de cela, nous vous recommandons d’utiliser le déploiement central du package Redistribuable Visual C++. Le déploiement central installe les fichiers redistribuables dans le dossier Windows %SYSTEMROOT%\system32\ à utiliser par toutes les applications et tous les utilisateurs. Le déploiement central par un package redistribuable permet à Microsoft de mettre en service des fichiers de bibliothèque runtime indépendamment. Une désinstallation de votre application ne peut pas interrompre les autres applications qui utilisent également le déploiement central.
Lorsque vous utilisez un package redistribuable pour le déploiement central, vous n’êtes pas responsable du suivi et de la mise à jour des bibliothèques d’exécution dans le cadre de la maintenance de votre application. Le service Microsoft Update met à jour ces bibliothèques pour vous. Sinon, une mise à jour des fichiers de bibliothèque d’exécution vous obligera à mettre à jour et à redéployer votre programme d’installation . Votre application pourrait être vulnérable aux bogues ou aux problèmes de sécurité jusqu’à ce que vous le fassiez.
Visual Studio inclut des modules merge (fichiers .msm) pour chaque composant Visual C++ sous licence pour la redistribution avec une application. Il existe des versions distinctes des modules de fusion pour chaque plate-forme cible. Lorsqu’un module de fusion est compilé dans un fichier d’installation Windows Installer, il active le déploiement de fichiers Redistribuables Visual C++ sur cette plateforme spécifique. Vous ne pouvez pas inclure de modules de fusion pour différentes versions de la même bibliothèque de liens dynamiques (DLL) dans un programme d’installation. Dans votre fichier d’installation, spécifiez que les modules de fusion sont des prérequis pour votre application.
Vous pouvez utiliser les modules de fusion pour un déploiement centralisé ou local. Les utilisateurs ne peuvent pas installer les fichiers déployés de manière centralisée s’ils ne disposent pas des droits d’administrateur. Le déploiement local peut permettre à un non-administrateur d’installer et d’exécuter votre application, mais au coût d’une serviceabilité indépendante.
Le service d’installation signale une erreur si vous tentez de déployer de manière centralisée des modules de fusion plus anciens sur des bibliothèques existantes plus récentes. Vous devez écrire votre programme d’installation de manière à gérer cette erreur de manière élégante et à ne pas afficher de message d’erreur. Votre code peut toujours être déployé et s’exécuter correctement malgré cette erreur. Pour plus d’informations, consultez C++ compatibilité binaire entre Visual Studio versions.
Si vous déployez votre code uniquement en tant que programme d’installation , nous vous recommandons de ne pas inclure les modules de fusion dans le programme d’installation. Au lieu de cela, signalez un échec à l’utilisateur lorsque les bibliothèques redistribuables requises ne sont pas trouvées. Dans la boîte de dialogue d’échec, incluez des instructions sur la recherche et l’installation du dernier package redistribuable. Pour plus d’informations et des liens vers des packages redistribuables, consultez les derniers téléchargements Visual C++ pris en charge.
Les derniers packages redistribuables et modules de fusion sont compatibles avec le code généré à l’aide de Visual Studio 2015 et versions ultérieures. Le code généré par les versions de Visual Studio avant 2015 nécessite un package redistribuable distinct.
Quand utiliser les modules de fusion
Les modules de fusion sont appropriés uniquement dans des circonstances limitées :
- Vous ne pouvez pas installer ou exiger un package redistribuable distinct pour des raisons de stratégie.
- Votre code nécessite une version spécifique compatible avec les bogues des bibliothèques.
- Votre code cible une seule plateforme et vous n’avez pas de dépendances sur plusieurs versions des DLL.
- Vous envisagez de traiter régulièrement votre code déployé afin que les bibliothèques restent à jour.
Lorsque vous utilisez des modules de fusion, vous devez suivre et mettre à jour régulièrement votre application avec les mises à jour des bibliothèques. Sinon, vous finirez par obliger vos clients à choisir entre exécuter votre code ou rester en sécurité.
Où trouver les fichiers de modules de fusion
Dans Visual Studio 2022 et 2019, les fichiers de module de fusion font partie d’un composant installable facultatif nommé C++ <version> MSM redistribuable dans le programme d’installation Visual Studio. Les modules de fusion sont installés par défaut dans le cadre d’une installation C++ dans Visual Studio 2017 et Visual Studio 2015. Lorsque les modules de fusion sont installés dans Visual Studio 2022, vous pouvez trouver les modules de fusion Redistribuable Visual C++ dans %VCINSTALLDIR%Redist\MSVC\v143\MergeModules.
Dans la dernière version de Visual Studio 2019, les modules de fusion se trouvent dans %VCINSTALLDIR%Redist\MSVC\v142\MergeModules. Dans les deux Visual Studio 2019 et Visual Studio 2017, ils sont également trouvés dans %VCToolsRedistDir%MergeModules. Dans Visual Studio 2015, ils se trouvent dans Program Files [(x86)]\Common Files\Merge Modules. Pour plus d’informations et un lien vers une liste de modules de fusion redistribuables, consultez Redistribuer des fichiers Visual C++.
Contenu connexe
- Redistribuer des fichiers Visual C++