Univerzální nasazení CRT
V sadě Visual Studio .NET až Visual Studio 2013 obsahuje každá hlavní verze kompilátoru a nástrojů jazyka C++ novou samostatnou verzi knihovny Microsoft C Runtime (CRT). Tyto samostatné verze CRT byly nezávislé na sobě a v různých stupních nekompatibilní s ostatními. Například knihovna CRT používaná sadou Visual Studio 2012 měla verzi 11 s názvem msvcr110.dll a CRT používanou sadou Visual Studio 2013 měla verzi 12 s názvem msvcr120.dll. Počínaje sadou Visual Studio 2015 už tomu tak není. Visual Studio 2015 a novější verze sady Visual Studio všechny používají jeden Univerzální CRT.
Universal CRT (UCRT) je komponenta operačního systému Microsoft Windows. Je součástí operačního systému ve Windows 10 nebo novějším a Windows Serveru 2016 nebo novějším. UCRT je k dispozici pomocí služba Windows Update ve starších operačních systémech, které jsou stále v rozšířené podpoře. Místní nasazení univerzálního CRT se podporuje s určitými omezeními.
Centrální nasazení
Upřednostňovanou metodou centrální instalace univerzálního CRT je použití microsoft služba Windows Update. Univerzální CRT je doporučená aktualizace pro všechny podporované operační systémy Microsoft Windows, takže ve výchozím nastavení ji většina počítačů instaluje jako součást běžného procesu aktualizace. Počáteční vydání univerzálního CRT bylo KB2999226. V KB3118401 byla provedena pozdější aktualizace s různými opravami chyb a další aktualizace s dalšími opravami chyb a novými funkcemi. Pro novější aktualizace vyhledejte support.microsoft.com
"Universal C Runtime" nebo "Universal CRT".
Ne všechny počítače se systémem Microsoft Windows pravidelně instalují aktualizace pomocí služba Windows Update a některé nemusí instalovat všechny doporučené aktualizace. Pro podporu používání aplikací vytvořených pomocí sad nástrojů Visual Studio 2015 a novějších sad nástrojů C++ na těchto počítačích jsou k dispozici soubory Universal CRT Redistributable pro offline distribuci. Tyto redistribuovatelné soubory mohou být staženy z některého z výše uvedených odkazů znalostní báze. Univerzální redistribuce CRT vyžaduje, aby byl počítač aktualizován na aktuální aktualizaci Service Pack. Redistribuovatelný pro Windows 7 se tedy například nainstaluje jenom na Windows 7 SP1, nikoli na Windows 7 RTM.
Univerzální CRT je základní závislost knihoven C++. Visual C++ Redistributable (VCRedist) nainstaluje počáteční verzi Universal CRT (verze 10.0.10240) na počítače, které ještě nemají nainstalovanou. Tato verze je dostatečná pro splnění závislostí knihovny jazyka C++. Pokud vaše aplikace závisí na novější verzi Univerzální CRT, musíte použít služba Windows Update, aby byl počítač plně aktuální. Nebo nainstalujte tuhle verzi UCRT explicitně. Před instalací nástroje VCRedist je nejlepší nainstalovat univerzální modul runtime C pomocí služba Windows Update nebo MSU. Tato objednávka instalace vám může pomoct vyhnout se několika požadovaným restartováním.
Ne všechny operační systémy mají nárok na nejnovější univerzální modul runtime C prostřednictvím služba Windows Update. V systému Windows 10 nebo Windows 11 se centrálně nasazená verze shoduje s verzí operačního systému. Pokud chcete modul Universal C Runtime dále aktualizovat, musíte aktualizovat operační systém. V systému Windows Vista až Windows 8.1 je nejnovější dostupný Univerzální modul C Runtime založený na windows 10 Anniversary Update (verze 10.0.14393).
Místní nasazení
Místní nasazení univerzálního CRT se podporuje, ale nedoporučuje se z důvodů výkonu i zabezpečení. Knihovny DLL pro místní nasazení jsou součástí sady Windows SDK v Windows Kits\10\Redist\ucrt\DLLs
podadresáři podle architektury počítače. Požadované knihovny DLL zahrnují ucrtbase.dll
a sadu knihoven DLL služby předávání APISet s názvem api-ms-win-*.dll
. Sada knihoven DLL vyžadovaných v každém operačním systému se liší. Důrazně doporučujeme zahrnout všechny knihovny DLL při místním nasazení.
Místní nasazení má dvě omezení, o které je potřeba vědět:
Ve Windows 10 a Windows 11 se univerzální CRT v systémovém adresáři vždy používá, i když aplikace obsahuje místní kopii univerzálního CRT aplikace. Platí to i v případě, že je místní kopie novější, protože Univerzální CRT je základní komponentou operačního systému ve Windows 10 a novějším.
Verze Windows před Windows 8: Univerzální CRT nejde zabalit místně pomocí modulu plug-in, pokud se nachází kdekoli, ale v hlavním adresáři spustitelného souboru aplikace. Knihovny DLL služby předávání APISet v tomto případě nelze úspěšně přeložit
ucrtbase.dll
. Mezi doporučená alternativní řešení patří:- Staticky propojit Univerzální CRT,
- Centrálně nasaďte univerzální CRT nebo
- Umístěte univerzální soubory CRT do stejného adresáře jako aplikace.
Nasazení v systému Microsoft Windows XP
Sady nástrojů sady Visual Studio 2015 a Visual Studio 2017 nadále podporují vývoj softwaru pro použití v systému Microsoft Windows XP. Existuje verze Univerzální CRT pro Systém Microsoft Windows XP. Operační systém Microsoft Windows XP již není v hlavní nebo rozšířené podpoře. Centrální nasazení Universal CRT do systému Microsoft Windows XP se tedy liší od jiných operačních systémů.
Pokud je visual C++ Redistributable nainstalován v systému Windows XP, nainstaluje přímo Universal CRT a všechny jeho závislosti do systémového adresáře. Nenainstaluje se ani nezávisí na žádném služba Windows Update. Redistribuovatelné slučovací moduly, Microsoft_VC<version>_CRT_<target>.msm
soubory, dělají totéž.
Místní nasazení Univerzální CRT v systému Windows XP je stejné jako v jiných podporovaných operačních systémech.
Důležité
Podpora knihovny runtime pro Systém Windows XP už není dostupná v nejnovějších Distribuovatelné součásti Visual C++ pro Visual Studio 2015, 2017, 2019 a 2022. Poslední redistributable pro podporu Systému Windows XP je verze 16.7 (soubor verze 14.27.29114.0). Pokud jsou vaše aplikace pro Windows XP nasazené nebo aktualizované na novější verzi redistributable, aplikace se nespustí. Další informace a informace o tom, jak získat verzi redistributable, která podporuje systém Windows XP, naleznete v tématu Konfigurace programů pro systém Windows XP.