Déploiement du CRT universel
De Visual Studio .NET jusqu’à Visual Studio 2013, chaque version majeure du compilateur et des outils C++ a inclus une nouvelle version autonome de la bibliothèque Microsoft Runtime C (CRT). Ces versions autonomes du CRT étaient indépendantes les unes des autres et, à différents degrés, incompatibles entre elles. Par exemple, la bibliothèque CRT utilisée par Visual Studio 2012 était la version 11, appelée msvcr110.dll, et la bibliothèque CRT utilisée par Visual Studio 2013 était la version 12, appelée msvcr120.dll. À compter de Visual Studio 2015, ce n’est plus le cas. Visual Studio 2015 et les versions ultérieures de Visual Studio utilisent toutes un seul CRT universel.
Le CRT universel (UCRT) est un composant de système d’exploitation Microsoft Windows. Elle est incluse dans le système d’exploitation dans Windows 10 ou version ultérieure, et Windows Server 2016 ou version ultérieure. L’UCRT est disponible à l’aide de Windows Update sur des systèmes d’exploitation plus anciens qui sont toujours en support étendu. Le déploiement local du CRT universel est pris en charge, avec certaines restrictions.
Déploiement central
La méthode par défaut pour installer le CRT universel de façon centralisée est d’utiliser Microsoft Windows Update. Comme le CRT universel fait partie des mises à jour recommandées de tous les systèmes d’exploitation Microsoft Windows pris en charge, par défaut, la plupart des machines l’installent dans le cadre du processus de mise à jour normal. La version initiale du CRT universel était KB2999226. Une mise à jour ultérieure avec différents correctifs de bogues a été effectuée dans KB3118401, et il y a eu plus de mises à jour avec d’autres correctifs de bogues et de nouvelles fonctionnalités. Pour obtenir des mises à jour plus récentes, recherchez support.microsoft.com
« Universal C Runtime » ou « Universal CRT ».
Les ordinateurs Microsoft Windows n’installent pas tous régulièrement les mises à jour à l’aide de Windows Update et certains peuvent ne pas installer les mises à jour recommandées. Pour prendre en charge l’utilisation d’applications créées à l’aide des ensembles d’outils C++ Visual Studio 2015 et ultérieurs sur ces ordinateurs, il existe des fichiers redistribuables CRT universels disponibles pour la distribution hors connexion. Ces fichiers redistribuables peuvent être téléchargés à partir de l’un des liens de la base de connaissances ci-dessus. Le redistribuable CRT universel nécessite que l’ordinateur ait été mis à jour vers le Service Pack actuel. Par exemple, le redistribuable pour Windows 7 s’installe uniquement sur Windows 7 SP1 et non sur Windows 7 RTM.
Le CRT universel est une dépendance fondamentale des bibliothèques C++. Visual C++ Redistributable (VCRedist) installe la version initiale du CRT universel (version 10.0.10240) sur les ordinateurs qui n’en ont pas déjà installé. Cette version est suffisante pour satisfaire les dépendances de la bibliothèque C++. Si votre application dépend d’une version plus récente du CRT universel, vous devez utiliser Windows Update pour mettre votre ordinateur à jour. Vous pouvez également installer cette version de l’UCRT explicitement. Il est préférable d’installer le runtime C universel à l’aide de Windows Update ou d’un MSU avant d’installer VCRedist. Cet ordre d’installation peut vous aider à éviter plusieurs redémarrages requis.
Tous les systèmes d’exploitation ne sont pas éligibles pour le runtime C universel le plus récent via Windows Update. Sur Windows 10 ou Windows 11, la version déployée de manière centralisée correspond à la version du système d’exploitation. Pour mettre à jour le runtime C universel, vous devez mettre à jour le système d’exploitation. Pour Windows Vista via Windows 8.1, le dernier runtime C universel disponible est basé sur la mise à jour anniversaire Windows 10 (version 10.0.14393).
Déploiement local
Le déploiement local du CRT universel est pris en charge, bien que non recommandé pour des raisons de performances et de sécurité. Les DLL pour le déploiement local sont incluses dans le Kit de développement logiciel (SDK) Windows, dans le Windows Kits\10\Redist\ucrt\DLLs
sous-répertoire, par architecture d’ordinateur. Les DLL requises incluent ucrtbase.dll
et un ensemble de DLL de redirecteur APISet nommées api-ms-win-*.dll
. L’ensemble de DLL requises sur chaque système d’exploitation varie. Il est vivement recommandé d’inclure toutes les DLL lorsque vous déployez localement.
Deux restrictions s’appliquent au déploiement local :
Sur Windows 10 et Windows 11, le CRT universel dans le répertoire système est toujours utilisé, même si une application inclut une copie locale d’application du CRT universel. Il est vrai même lorsque la copie locale est plus récente, car le CRT universel est un composant de système d’exploitation principal sur Windows 10 et versions ultérieures.
Versions de Windows avant Windows 8 : le CRT universel ne peut pas être empaqueté localement avec un plug-in, s’il se trouve n’importe où, mais dans le répertoire exécutable de l’application principale. Les DLL du redirecteur APISet ne peuvent pas résoudre le
ucrtbase.dll
problème dans ce cas. Voici quelques solutions alternatives recommandées :- Liez statiquement le CRT universel,
- Déployez de manière centralisée le CRT universel ou
- Placez les fichiers du CRT universel dans le même répertoire que l’application.
Déploiement sur Microsoft Windows XP
Les ensembles d’outils Visual Studio 2015 et Visual Studio 2017 continuent de prendre en charge le développement de logiciels à utiliser sur Microsoft Windows XP. Il existe une version du CRT universel pour Microsoft Windows XP. Le système d’exploitation Microsoft Windows XP n’est plus pris en charge standard ou étendu. Par conséquent, le déploiement central du CRT universel sur Microsoft Windows XP est différent des autres systèmes d’exploitation.
Lorsque Visual C++ Redistributable est installé sur Windows XP, il installe directement le CRT universel et toutes ses dépendances dans le répertoire système. Il n’installe ni ne dépend de Windows Update. Les modules de fusion redistribuables, les Microsoft_VC<version>_CRT_<target>.msm
fichiers, font de même.
Le déploiement local du CRT universel sur Windows XP est le même que sur les autres systèmes d’exploitation pris en charge.
Important
La prise en charge des bibliothèques runtime pour Windows XP n’est plus disponible dans les dernières Redistributable Visual C++ pour Visual Studio 2015, 2017, 2019 et 2022. Le dernier redistribuable pour prendre en charge Windows XP est la version 16.7 (version de fichier 14.27.29114.0). Si vos applications Windows XP sont déployées avec ou mises à jour vers une version ultérieure du redistribuable, les applications ne s’exécutent pas. Pour plus d’informations et comment obtenir une version du redistribuable qui prend en charge Windows XP, consultez Configuration des programmes pour Windows XP.