Bereitstellung der universellen CRT

Von Visual Studio .NET bis Visual Studio 2013 enthielt jedes Hauptrelease der C++-Compiler und -Tools eine neue, eigenständige Version der Microsoft C-Laufzeitbibliothek (CRT). Diese eigenständigen Versionen der CRT waren unabhängig voneinander und teilweise nicht miteinander kompatibel. Die CRT-Bibliothek, die von Visual Studio 2012 verwendet wurde, war beispielsweise Version 11 (msvcr110.dll), und die CRT, die von Visual Studio 2013 verwendet wurde, war Version 12 (msvcr120.dll). Ab Visual Studio 2015 ist es nicht mehr der Fall. Visual Studio 2015 und höhere Versionen von Visual Studio verwenden die universelle CRT.

Das universelle CRT (UCRT) ist eine Microsoft Windows-Betriebssystemkomponente. Sie ist bestandteil des Betriebssystems in Windows 10 oder höher und Windows Server 2016 oder höher. Das UCRT ist mit Windows Update auf älteren Betriebssystemen verfügbar, die weiterhin erweitert unterstützt werden. Die lokale Bereitstellung des universellen CRT wird mit einigen Einschränkungen unterstützt.

Zentrale Bereitstellung

Die bevorzugte Methode zur zentralen Installation der universellen CRT ist die Verwendung von Microsoft Windows Update. Bei der universellen CRT handelt es sich um ein empfohlenes Update für alle unterstützten Microsoft Windows-Betriebssysteme. Deshalb wird sie auf den meisten Computern standardmäßig im Rahmen des regulären Updatevorgangs installiert. Die erste Version des Universal CRT wurde KB2999226. Ein späteres Update mit verschiedenen Fehlerbehebungen wurde in KB3118401 vorgenommen, und es gab weitere Updates mit weiteren Fehlerbehebungen und neuen Features. Suchen Sie nach "Universelle C-Runtime" oder "Universelle CRT", um aktuellere Updates zu erhalten support.microsoft.com .

Nicht alle Microsoft Windows-Computer installieren regelmäßig Updates über Windows Update, und manche installieren möglicherweise nicht alle empfohlenen Updates. Zur Unterstützung der Verwendung von Anwendungen, die mithilfe der Visual Studio 2015- und höher-C++-Toolsets auf diesen Computern erstellt wurden, stehen universelle CRT Redistributable-Dateien für die Offlineverteilung zur Verfügung. Diese weiterverteilbaren Dateien können von einem der oben aufgeführten KB-Links heruntergeladen werden. Die universelle CRT Redistributable erfordert, dass der Computer auf das aktuelle Service Pack aktualisiert wurde. Die verteilbare Komponente für Windows 7 kann also beispielsweise nur unter Windows 7 SP1, nicht unter Windows 7 RTM installiert werden.

Das universelle CRT ist eine grundlegende Abhängigkeit der C++-Bibliotheken. Visual C++ Redistributable (VCRedist) installiert die erste Version des universellen CRT (Version 10.0.10240) auf Computern, auf denen noch keine installiert ist. Diese Version reicht aus, um die C++-Bibliotheksabhängigkeiten zu erfüllen. Wenn Ihre Anwendung von einer neueren Version des universellen CRT abhängt, müssen Sie Windows Update verwenden, um Ihren Computer vollständig auf dem neuesten Stand zu bringen. Oder installieren Sie diese Version des UCRT explizit. Es ist am besten, die universelle C-Runtime mithilfe von Windows Update oder einem MSU zu installieren, bevor Sie den VCRedist installieren. Diese Installationsreihenfolge kann dazu beitragen, mehrere erforderliche Neustarts zu vermeiden.

Nicht alle Betriebssysteme sind für die neueste universelle C-Runtime über Windows Update berechtigt. Unter Windows 10 oder Windows 11 entspricht die zentral bereitgestellte Version der Version des Betriebssystems. Um die universelle C-Runtime weiter zu aktualisieren, müssen Sie das Betriebssystem aktualisieren. Für Windows Vista bis Windows 8.1 basiert die neueste verfügbare universelle C-Runtime auf dem Windows 10 Anniversary Update (Version 10.0.14393).

Lokale Bereitstellung

Die lokale Bereitstellung der App der universellen CRT wird zwar unterstützt, aber aus Leistungs- und Sicherheitsgründen nicht empfohlen. Die DLLs für die lokale Bereitstellung sind als Teil des Windows SDK im Windows Kits\10\Redist\ucrt\DLLs Unterverzeichnis nach Computerarchitektur enthalten. Die erforderlichen DLLs enthalten ucrtbase.dll und eine Reihe von APISet-Weiterleitungs-DLLs mit dem Namen api-ms-win-*.dll. Die für jedes Betriebssystem erforderliche Gruppe von DLLs variiert. Es wird dringend empfohlen, alle DLLs einzubeziehen, wenn Sie lokal bereitstellen.

Es gibt zwei Einschränkungen bei der lokalen Bereitstellung, die Sie berücksichtigen müssen:

  • Unter Windows 10 und Windows 11 wird das universelle CRT im Systemverzeichnis immer verwendet, auch wenn eine Anwendung eine anwendungslokale Kopie des universellen CRT enthält. Dies gilt auch dann, wenn die lokale Kopie neuer ist, da es sich bei der universellen CRT um eine Kernbetriebssystemkomponente unter Windows 10 und höher handelt.

  • Windows-Versionen vor Windows 8: Das universelle CRT kann nicht lokal mit einem Plug-In verpackt werden, wenn es sich an einer beliebigen Stelle befindet, aber im ausführbaren Verzeichnis der Standard App. Die APISet-Weiterleitungs-DLLs können die ucrtbase.dll in diesem Fall erfolgreich auflösen. Folgende alternative Lösungen werden empfohlen:

    • Verknüpfen Sie die universelle CRT statisch,
    • stellen Sie sie zentral bereit, oder
    • platzieren Sie die Dateien der universellen CRT im selben Verzeichnis wie die App.

Bereitstellung unter Microsoft Windows XP

Visual Studio 2015- und Visual Studio 2017-Toolsets unterstützen weiterhin die Entwicklung von Software für die Verwendung unter Microsoft Windows XP. Es gibt eine Version der universellen CRT für Microsoft Windows XP. Das Betriebssystem Microsoft Windows XP befindet sich nicht mehr im Standard stream oder erweiterten Support. Die zentrale Bereitstellung des universellen CRT auf Microsoft Windows XP unterscheidet sich also von anderen Betriebssystemen.

Wenn visual C++ Redistributable unter Windows XP installiert ist, installiert sie direkt das universelle CRT und alle abhängigkeiten in das Systemverzeichnis. Sie installiert oder hängt von keinem Windows Update ab. Die weiterverteilbaren Zusammenführungsmodule, die Microsoft_VC<version>_CRT_<target>.msm Dateien, führen die gleichen Aktionen aus.

Die lokale Bereitstellung der universellen CRT unter Windows XP unterscheidet sich nicht von der auf anderen unterstützten Betriebssystemen.

Wichtig

Die Unterstützung der Laufzeitbibliothek für Windows XP ist in den neuesten Visual C++ Redistributable für Visual Studio 2015, 2017, 2019 und 2022 nicht mehr verfügbar. Die letzte Weiterverteilbar zur Unterstützung von Windows XP ist Version 16.7 (Dateiversion 14.27.29114.0). Wenn Ihre Windows XP-Apps mit einer späteren Version des Redistributable bereitgestellt oder auf eine solche aktualisiert werden, werden die Apps nicht ausgeführt. Weitere Informationen und informationen zum Abrufen einer Version der weiterverteilbaren Version, die Windows XP unterstützt, finden Sie unter Konfigurieren von Programmen für Windows XP.

Siehe auch