Universal crt redistributable что это
Universal CRT (KB2999226) для Office 2016 Windows 7 64
При установке Microsoft Office 2016 в Windows 7 может возникнуть ошибка, указывающая на то, что требуемый компонент Universal CRT (KB2999226) установить не удалось. Дальнейшие попытки инсталлировать офисный пакет успехом не увенчаются – предварительно нужно разобраться с указанным системным обновлением. Ссылка на скачивание KB2999226 прикреплена в конце статьи. В обзоре мы расскажем о способах инсталляции данного апдейта – предложим два наиболее эффективных варианта.
Установка обновления
Загрузка и подключение любого пакета системных обновлений выполняется одним из двух способов – полностью вручную или с использованием встроенного в ОС инструмента.
Вручную
Справиться с поставленной задачей сможет любой начинающий пользователь – достаточно следовать простому алгоритму, представленному ниже:
После перезагрузки можно повторно попробовать установить Microsoft Office 2016 – если операция была проведена успешно, рассматриваемая нами ошибка больше не появится.
С помощью системного инструмента
Если по какой-либо неясной причине вручную решить проблему не удаётся (процедура установки неожиданно прерывается), можно попробовать найти нужное обновление в «Центре обновления Windows».
Алгоритм использования данного метода выглядит следующим образом:
Причины появления возможных проблем
Препятствовать установке апдейтов могут следующие факторы:
Ключ активации и загрузка
Нажав на кнопку ниже, вы запустите скачивание KB2999226.
Universal CRT deployment
The Universal CRT (UCRT) is a Microsoft Windows operating system component. It’s included as part of the operating system in Windows 10 or later, and Windows Server 2016 or later. The UCRT is available by using Windows Update on older operating systems that are still in extended support. Local deployment of the Universal CRT is supported, with some restrictions.
Central deployment
The preferred method to centrally install the Universal CRT is to use Microsoft Windows Update. The Universal CRT is a Recommended update for all supported Microsoft Windows operating systems, so by default, most machines install it as part of the regular update process. The initial release of the Universal CRT was KB2999226. A later update with various bug fixes was made in KB3118401, and there have been more updates with further bug fixes and new features. For more recent updates, search support.microsoft.com for «Universal C Runtime» or «Universal CRT».
Not all Microsoft Windows computers regularly install updates by use of Windows Update, and some may not install all Recommended updates. To support the use of applications built by using the Visual Studio 2015 and later C++ toolsets on those machines, there are Universal CRT redistributable files available for offline distribution. Those redistributable files may be downloaded from one of the KB links above. The Universal CRT redistributable requires that the machine has been updated to the current service pack. So, for example, the redistributable for Windows 7 will only install onto Windows 7 SP1, not Windows 7 RTM.
The Universal CRT is a fundamental dependency of the C++ libraries. The Visual C++ redistributable (VCRedist) installs the initial version of the Universal CRT (version 10.0.10240) on machines that don’t already have one installed. This version is sufficient to satisfy the C++ library dependencies. If your application depends on a more recent version of the Universal CRT, you must use Windows Update to bring your machine fully up to date. Or, install that version of the UCRT explicitly. It’s best to install the Universal C Runtime by using Windows Update or an MSU before you install the VCRedist. This installation order can help avoid multiple required reboots.
Not all operating systems are eligible for the most recent Universal C Runtime via Windows Update. On Windows 10 or Windows 11, the centrally deployed version matches the version of the operating system. To update the Universal C Runtime further, you must update the operating system. For Windows Vista through Windows 8.1, the latest available Universal C Runtime is based on the Windows 10 Anniversary Update (version 10.0.14393).
Local deployment
Local deployment of the Universal CRT is supported, but not recommended for both performance and security reasons. The DLLs for local deployment are included as part of the Windows SDK, in the Windows Kits\10\Redist\ucrt\DLLs subdirectory, by computer architecture. The DLLs required include ucrtbase.dll and a set of APISet forwarder DLLs named api-ms-win-*.dll. The set of DLLs required on each operating system varies. It’s highly recommended that you include all of the DLLs when you deploy locally.
There are two restrictions on local deployment to be aware of:
On Windows 10 and Windows 11, the Universal CRT in the system directory is always used, even if an application includes an application-local copy of the Universal CRT. It’s true even when the local copy is newer, because the Universal CRT is a core operating system component on Windows 10 and later.
Versions of Windows before Windows 8: The Universal CRT can’t be packaged locally with a plugin, if it’s located anywhere but the main app executable directory. The APISet forwarder DLLs are unable to resolve the ucrtbase.dll successfully in this case. Some recommended alternative solutions include:
Deployment on Microsoft Windows XP
Visual Studio 2015 and Visual Studio 2017 toolsets continue to support development of software for use on Microsoft Windows XP. There’s a version of the Universal CRT for Microsoft Windows XP. The Microsoft Windows XP operating system is no longer in mainstream or extended support. So, central deployment of the Universal CRT onto Microsoft Windows XP is different from other operating systems.
When the Visual C++ redistributable is installed on Windows XP, it directly installs the Universal CRT and all of its dependencies into the system directory. It doesn’t install or depend on any Windows Update. The Redistributable merge modules, the Microsoft_VCversionCRT*.msm files, do the same.
Local deployment of the Universal CRT on Windows XP is the same as on other supported operating systems.
Runtime library support for Windows XP is no longer available in the latest Visual C++ Redistributable for Visual Studio 2015, 2017, and 2019. The last redistributable to support Windows XP is version 16.7 (file version 14.27.29114.0). If your Windows XP apps are deployed with or updated to a later version of the redistributable, the apps won’t run. For more information, and how to get a version of the redistributable that supports Windows XP, see Configuring programs for Windows XP.
Обновление кода для универсальной среды выполнения
В Visual Studio 2015 был выполнен рефакторинг библиотеки времени выполнения Майкрософт C (CRT). Расширения стандартной библиотеки C, POSIX и характерные для Майкрософт функции были перемещены в новую библиотеку — библиотеку универсальной среды C (универсальной CRT или UCRT). Компоненты компилятора были перемещены в новую библиотеку vcruntime.
UCRT теперь является компонентом Windows и поставляется в составе Windows 10 и более поздних версий. UCRT поддерживает стабильные соглашения о вызовах ABI на основе C и более точно соответствует стандарту ISO C99 с несколькими исключениями. UCRT больше не привязана к конкретной версии компилятора. UCRT можно использовать в любой версии Windows, поддерживаемой Visual Studio 2015 или Visual Studio 2017. Преимущество в том, что больше не требуется обновлять сборки для соответствия новой версии CRT при каждом обновлении Visual Studio.
После такого рефакторинга изменились имена или расположения многих файлов заголовков CRT, файлов библиотек и распространяемых компонентов, а также методы развертывания, необходимые для кода. Кроме того, в UCRT были добавлены или изменены многие функции и макросы в целях улучшения соответствия стандартам. Чтобы эффективно использовать эти изменения, необходимо обновить существующий код и системы сборки проекта.
Где найти файлы универсальной среды выполнения
Так как UCRT является компонентом Windows, файлы и заголовки библиотеки UCRT теперь входят в состав пакета SDK Windows. При установке Visual Studio также устанавливаются компоненты пакета SDK Windows, необходимые для использования UCRT. Установщик Visual Studio добавляет расположения файлов заголовков и библиотек и DLL-файлов в пути по умолчанию, используемые в системе сборки проектов Visual Studio. Если при обновлении проекты Visual Studio C++ используют параметры по умолчанию, интегрированная среда разработки автоматически обнаружит новые расположения для файлов заголовков, а компоновщик автоматически будет использовать новые заданные по умолчанию библиотеки UCRT и vcruntime. Аналогичным образом при использовании командной строки разработчика для построений из командной строки переменные среды, содержащие пути для заголовков и библиотек, будут автоматически обновлены и готовы к работе.
Теперь файлы заголовков стандартной библиотеки C находятся в пакете SDK Windows SDK в папке include в каталоге версии пакета SDK. типичное расположение файлов заголовков находится в каталоге program files или program files (x86) в разделе Windows Kits\10\Include\sdk-version\укрт, где версия пакета sdk соответствует Windows версии или обновления, например 10.0.14393.0 для годовщины обновления Windows 10.
статические библиотеки UCRT и библиотеки заглушек динамической компоновки находятся в каталоге program files или program files (x86) в разделе Windows Kits\10\Lib\sdk-version\укрт\,где архитектура — ARM, x86 или X64. Статические библиотеки отладочных и розничных версий — это libucrt.lib и libucrtd.lib, а библиотеки для DLL UCRT — ucrt.lib и ucrtd.lib.
Отладочные и розничные версии библиотек DLL среды UCRT находятся в разных местах. розничные библиотеки dll являются распространяемыми, и их можно найти в каталоге program files или program files (x86) в разделе Windows Kits\10\Redist\ucrt\DLLs\architecture. отладочные библиотеки UCRT не являются распространяемыми, и их можно найти в каталоге program files или program files (x86) в папке Windows Kits\10\bin\architecture\укрт.
Библиотека поддержки времени выполнения для компилятора C и C++, vcruntime, содержит код, необходимый для поддержки запуска программы и функций, таких как обработка исключений и встроенные функции. Библиотеки и ее файлы заголовков по-прежнему находятся в папке конкретной версии Microsoft Visual Studio в каталоге Program Files или Program Files (x86). в Visual Studio 2017 заголовки находятся в разделе Microsoft Visual Studio \ 2017 \выпуск\вк\тулс\ MSVC \lib-version\инклуде, а библиотеки ссылок находятся в папке Microsoft Visual Studio \ 2017 \выпуск\вк\тулс\ MSVC \ архитектура lib-version\либ\, где выпуск — это выпуск Visual Studio установлен, lib-version — это версия библиотек, а архитектура — архитектура процессора. Библиотеки компоновки для OneCore и Магазина также находятся в папке библиотек. Версия выпуска и отладочная версия статической библиотеки — это libvcruntime.lib и libvcruntimed.lib. Версия выпуска библиотеки динамической компоновки и отладочная версия библиотеки заглушки — это vcruntime.lib и vcruntimed.lib, соответственно.
Если при обновлении проектов Visual Studio C++ вы установили для свойства Игнорировать все стандартные библиотекикомпоновщика в проекте значение Да или используете параметр компоновщика в командной строке, необходимо обновить список библиотек, чтобы включить в него новые подвергнутые рефакторингу библиотеки. Замените старую библиотеку CRT, например libcmt.lib, libcmtd.lib, msvcrt.lib, msvcrtd.lib, эквивалентными подвергнутыми рефакторингу библиотеками. Сведения о конкретных библиотеках см. в разделе Особенности библиотеки CRT.
Развертывание и распространение универсальной среды выполнения
поскольку UCRT теперь является компонентом операционной системы Microsoft Windows, он входит в состав операционной системы в Windows 10 и более поздних версиях. он доступен в Центр обновления Windows для старых операционных систем Windows Vista с помощью Windows 8.1. Распространяемая версия доступна для Windows XP. как компонент операционной системы, UCRT обновления и обслуживание управляются Центр обновления Windows независимо от Visual Studio и версий компилятора Microsoft C++. Поскольку UCRT является компонентом Windows, в связи с небольшим размером образа и в целях обеспечения безопасности и простоты применения обновлений настоятельно рекомендуется выполнять централизованное развертывание UCRT для приложений.
вы можете использовать UCRT для любой версии Windows, поддерживаемой Visual Studio 2015 или более поздней версией. его можно распространить с помощью пакета vcredist для поддерживаемых версий Windows перед Windows 10. Пакеты vcredist включают в себя компоненты UCRT и автоматически устанавливают их в операционных системах Windows, где они не установлены по умолчанию. Дополнительные сведения см. в разделе Распространение файлов Visual C++.
Поддерживается развертывание локальных приложений UCRT, хотя этот вариант является нерекомендуемым по соображениям безопасности и производительности. Библиотеки DLL для развертывания локальных приложений входят в состав пакета SDK Windows и находятся в подкаталоге redist. Требуемые библиотеки DLL содержат ucrtbase.dll и набор библиотек DLL переадресации APISet с именем api-ms-win-subset.dll. Для каждой операционной системы требуется разный набор библиотек DLL, поэтому при развертывании локальных приложений рекомендуется включать все библиотеки DLL. Дополнительные сведения и советы об использовании развертываний локальных приложений см. в разделе Развертывание в Visual C++.
Изменения функций и макросов универсальной среды выполнения
Многие функции были добавлены или обновлены в UCRT для повышения соответствия стандарту ISO C99, а также для устранения проблем, связанных с качеством и безопасностью кода. В некоторых случаях требовалось внести критические изменения в библиотеку. Если код компилируется правильно при использовании более ранней версии CRT, но прерывается при компиляции с использованием UCRT, необходимо изменить код, чтобы воспользоваться преимуществами этих обновлений и функций. Подробный список критических изменений и обновлений для универсальной среды выполнения в разделе Библиотека времени выполнения C (CRT) в журнале изменений Visual C++. В него входит перечень затронутых заголовков и функции, который можно использовать для определения изменений, необходимых для кода.
Развертывание универсальной библиотеки CRT
универсальный CRT (UCRT) — это компонент операционной системы Microsoft Windows. он входит в состав операционной системы в Windows 10 или более поздней версии, а также Windows Server 2016 или более поздней версии. UCRT доступен с помощью Центр обновления Windows в более старых операционных системах, которые по-прежнему доступны в расширенной поддержке. Локальное развертывание универсальной CRT поддерживается с некоторыми ограничениями.
Централизованное развертывание
Не все компьютеры с Microsoft Windows регулярно получают обновления через Центр обновления Windows, а на некоторых могут устанавливаться не все рекомендуемые обновления. для поддержки использования приложений, созданных с помощью наборов средств C++ Visual Studio 2015 и более поздних версий на этих компьютерах, доступны распространяемые файлы универсальной библиотеки CRT, доступные для автономного распространения. Эти распространяемые файлы можно загрузить с одной из ссылок KB выше. Распространяемый компонент универсальной библиотеки CRT требует, чтобы компьютер был обновлен до текущего пакета обновления. Например, распространяемый пакет для Windows 7 будет устанавливаться только в Windows 7 с пакетом обновления 1 (SP1), но не в Windows 7 RTM.
Универсальная библиотека CRT является фундаментальной зависимостью библиотек C++. Распространяемый компонент Visual C++ (VCRedist) устанавливает начальную версию универсальной библиотеки CRT (версии 10.0.10240) на компьютерах, на которых еще не установлены. Эта версия достаточна для удовлетворения зависимостей библиотеки C++. если приложение зависит от более поздней версии универсальной библиотеки CRT, необходимо использовать Центр обновления Windows для полного обновления компьютера. Или же установите эту версию UCRT явным образом. перед установкой VCRedist рекомендуется установить универсальную среду выполнения C с помощью Центр обновления Windows или MSU. Этот порядок установки может помочь избежать нескольких необходимых перезагрузок.
не все операционные системы подходят для последней универсальной среды выполнения C с помощью Центр обновления Windows. в Windows 10 или Windows 11 версия, развернутая централизованно, соответствует версии операционной системы. Чтобы обновить универсальную среду выполнения C, необходимо обновить операционную систему. для Windows Vista до Windows 8.1 последняя доступная универсальная среда выполнения C основывается на обновлении Windows 10 юбилея (версия 10.0.14393).
Локальное развертывание
Для локального развертывания существует два ограничения, которые следует учитывать:
в Windows 10 и Windows 11 универсальная библиотека CRT в системном каталоге всегда используется, даже если приложение включает в себя локальную версию универсальной библиотеки crt приложения. это справедливо даже в том случае, если локальная копия является более новой, поскольку универсальная библиотека CRT является основным компонентом операционной системы на Windows 10 и более поздних версиях.
версии Windows до Windows 8: универсальная библиотека CRT не может быть упакована локально с подключаемым модулем, если она находится в любом месте, но в главном каталоге исполняемого приложения. В этом случае библиотеки DLL сервера пересылки APISet не могут успешно разрешить ucrtbase.dll. К рекомендуемым альтернативным способам относятся следующие.
Развертывание в Microsoft Windows XP
наборы средств Visual Studio 2015 и Visual Studio 2017 продолжают поддерживать разработку программного обеспечения для использования в Microsoft Windows XP. существует версия универсальной библиотеки CRT для Microsoft Windows XP. операционная система Microsoft Windows XP больше не является основной или расширенной. итак, центральное развертывание универсальной CRT на Microsoft Windows XP отличается от других операционных систем.
если распространяемый компонент Visual C++ установлен в Windows XP, он непосредственно устанавливает универсальную CRT и все его зависимости в системный каталог. он не устанавливается или не зависит от Центр обновления Windows. Распространяемые модули слияния, файлы Microsoft_VCверсииCRT*. MSM, выполняют те же действия.
Локальное развертывание универсальной CRT в Windows XP осуществляется так же, как и в других поддерживаемых операционных системах.
поддержка библиотеки времени выполнения для Windows XP больше не доступна в последних Распространяемый компонент Visual C++ для Visual Studio 2015, 2017 и 2019. последний распространяемый пакет для поддержки Windows XP — версия 16,7 (версия файла 14.27.29114.0). Если приложения Windows XP развернуты или обновлены до более поздней версии распространяемого компонента, приложения не будут работать. дополнительные сведения и о том, как получить версию распространяемого пакета, поддерживающего Windows xp, см. в разделе настройка программ для Windows xp.
Microsoft решила исправить неразбериху вокруг Visual C++ Redistributable
Программам, разработанным с помощью Visual Studio, обычно требуется для запуска определенная версия Microsoft Visual C++ Redistributable. Данное условие приводит к установке на ПК Windows 10, Windows 8.1 и Windows 7 большого количеств различных версий распространяемых пакетов Visual C++.
В результате на большинстве устройств Windows можно наблюдать ситуацию, когда в системе развернуты пакеты Microsoft Visual C++ Redistributable, установка которых была инициирована программным обеспечением, обновлениями, например патчами безопасности или вручную системным администратором.
Пакеты Redistributable сохраняются в общедоступных системных директориях, поэтому любая программа может получить к ним доступ при необходимости.
Microsoft приводит следующий пример на странице поддержки «Последние поддерживаемые версии Visual C++ для скачивания»:
Например, установка распространяемого пакета Visual C++ 2019 позволяет работать с программами, созданные с помощью Visual C++ 2015 и 2017. Однако установка распространяемого пакета Visual C++ 2015 не заменяет новых версий файлов, установленных распространяемыми пакетами Visual C ++ 2017 и 2019.
Это основное отличие от предыдущих версий Visual C++, поскольку у них есть собственные файлы выполнения, которые не используются совместно с другими версиями.
На странице поддержки Microsoft Docs приводится дополнительная информация:
Эта универсальная CRT является компонентом операционной системы Microsoft Windows. Она входит в состав операционной системы Windows 10 и доступна через Центр обновления Windows для старых операционных систем от Windows Vista до Windows 8.1. Кроме того, локальное развертывание универсальной CRT поддерживается с некоторыми ограничениями.
Администраторы Windows могут загрузить универсальную среду выполнения С++ в зависимости от архитектуры процессора по следующей ссылке:
Ранние версии распространяемых пакетов для Visual Studio по-прежнему нужно будет скачивать и устанавливать отдельно, или они будут развертываться в процессе установки ПО. Сторонний установщик Visual C++ All in One Installer помогает установить все необходимые распространяемые пакеты в системы Windows.
Универсальная CRT – шаг в верном направлении. Хотя она не решает проблему со старыми распространяемыми пакетами C++, она значительно упрощает работу с пакетами Visual C++ 2015 Redistributable и выше.
Сколько распространяемых пакетов Visual C++ установлено в вашей системе?