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 obsolètes. Nous vous déconseillons de les utiliser pour le déploiement d’applications. Les composants redistribuables installés à l’aide de modules de fusion ne peuvent pas être mis à jour par Windows Update, car le mécanisme de détection dépend des détails du package d’installation. Les packages redistribuables Visual C++ sont connus pour chaque version, mais les packages qui utilisent des MSM 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. Nous vous recommandons plutôt 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\ pour qu’ils puissent être utilisés par toutes les applications et tous les utilisateurs. Le déploiement centralisé à l’aide d’un package redistribuable permet à Microsoft de gérer les fichiers de bibliothèque d’exécution de manière indépendante. De plus, la désinstallation de votre application n’affecte pas 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 .msi. 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 de fusion (fichiers .msm) pour chaque composant Visual C++ dont la licence autorise 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 permet le déploiement des fichiers redistribuables Visual C++ sur cette plate-forme spécifique. Vous ne pouvez pas inclure des modules de fusion pour différentes versions de la même DLL dans un seul 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 utilisateur non administrateur d’installer et d’exécuter votre application, mais au détriment de la facilité de maintenance 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 Compatibilité binaire C++ entre les versions de Visual Studio.
Si vous déployez votre code uniquement en tant qu’installateur .msi, nous vous recommandons de ne pas inclure les modules de fusion dans l’installateur. Signalez plutôt une erreur à l’utilisateur lorsque les bibliothèques redistribuables requises sont introuvables. Dans la boîte de dialogue d’erreur, incluez des instructions sur la manière de trouver et d’installer le package redistribuable le plus récent. Pour plus d’informations et pour obtenir des liens vers les packages redistribuables, consultez la page Téléchargements Visual C++ pris en charge les plus récents.
Les derniers packages redistribuables et modules de fusion sont compatibles avec le code créé à l’aide de Visual Studio 2015 et versions ultérieures. Le code créé par les versions de Visual Studio antérieures à 2015 nécessite un package redistribuable distinct.
Quand utiliser les modules de fusion
Les modules de fusion ne sont appropriés que 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 et compatible avec les bogues des bibliothèques.
- Votre code ne cible qu’une seule plateforme et vous n’avez pas de dépendances à plusieurs versions des DLL.
- Vous avez l’intention de mettre régulièrement à jour 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 modules de fusion font partie d’un composant facultatif installable nommé C++ <version> Redistributable MSMs dans le programme d’installation de Visual Studio. Les modules de fusion sont installés par défaut dans le cadre de l’installation de C++ dans Visual Studio 2017 et Visual Studio 2015. Lorsqu’ils sont installés dans Visual Studio 2022, vous trouverez les modules de fusion redistribuables 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 Visual Studio 2019 et Visual Studio 2017, ils se trouvent également dans %VCToolsRedistDir%MergeModules. Dans Visual Studio 2015, ils se trouvent dans Program Files [(x86)]\Common Files\Merge Modules. Pour plus d’informations et pour obtenir un lien vers une liste des modules de fusion redistribuables, consultez Redistribution des fichiers Visual C++.