Развертывание универсальной библиотеки CRT

Начиная с Visual Studio .NET и заканчивая Visual Studio 2013 каждый основной выпуск инструментов и компилятора C++ содержал новую автономную версию библиотеки среды выполнения C (CRT) корпорации Майкрософт. Эти автономные версии CRT были независимыми друг от друга и в различной степени несовместимыми друг с другом. Например, библиотека CRT, используемая Visual Studio 2012, имела версию 11 и имя msvcr110.dll, а CRT в Visual Studio 2013 имела версию 12 и имя msvcr120.dll. Начиная с Visual Studio 2015, это уже не так. В Visual Studio 2015 и более поздних версиях используется одна универсальная CRT.

Универсальный CRT (UCRT) — это компонент операционной системы Microsoft Windows. Она входит в состав операционной системы в Windows 10 или более поздней версии и Windows Server 2016 или более поздней версии. UCRT доступен с помощью Обновл. Windows в старых операционных системах, которые по-прежнему находятся в расширенной поддержке. Локальное развертывание универсальной CRT поддерживается с некоторыми ограничениями.

Централизованное развертывание

Предпочитаемый способ централизованной установки универсальной CRT — Центр обновления Microsoft Windows. Универсальная CRT является рекомендуемым обновлением для всех поддерживаемых операционных систем Microsoft Windows, поэтому многие компьютеры устанавливают ее по умолчанию в рамках обычного процесса обновления. Первоначальный выпуск универсальной CRT был КБ2999226. Более поздние обновления с различными исправлениями ошибок были сделаны в КБ3118401, и было больше обновлений с дальнейшими исправлениями ошибок и новыми функциями. Для получения дополнительных последних обновлений выполните поиск support.microsoft.com по запросу "Универсальная среда выполнения C" или "Универсальная CRT".

Не все компьютеры с Microsoft Windows регулярно получают обновления через Центр обновления Windows, а на некоторых могут устанавливаться не все рекомендуемые обновления. Для поддержки использования приложений, созданных с помощью наборов инструментов Visual Studio 2015 и более поздних версий C++ на этих компьютерах, доступны универсальные распространяемые файлы CRT для автономного распространения. Эти распространяемые файлы можно скачать из одной из указанных выше КБ ссылок. Для универсального распространяемого пакета 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).

Локальное развертывание

Локальное развертывание универсальной CRT поддерживается, хотя и не рекомендуется по соображениям безопасности и производительности. Библиотеки DLL для локального развертывания включены в состав пакета SDK для Windows ( в подкаталоге Windows Kits\10\Redist\ucrt\DLLs ) по архитектуре компьютера. Необходимые библиотеки DLL включают ucrtbase.dll и набор DLL-библиотек api-ms-win-*.dllпересылки APISet. Набор библиотек DLL, необходимых для каждой операционной системы, зависит. Настоятельно рекомендуется включить все библиотеки DLL при локальном развертывании.

Для локального развертывания существует два ограничения, которые следует учитывать:

  • В Windows 10 и Windows 11 универсальный CRT в системном каталоге всегда используется, даже если приложение включает локальную копию универсальной CRT. Это верно, даже если локальная копия более новая, так как универсальная версия CRT является основным компонентом операционной системы в Windows 10 и более поздних версиях.

  • Версии Windows до Windows 8. Универсальная CRT не может быть упаковано локально с подключаемым модулем, если он находится где-либо, но основной исполняемый каталог приложения. Библиотеки DLL пересылки APISet не могут устранить ucrtbase.dll успешно в этом случае. К рекомендуемым альтернативным способам относятся следующие.

    • Статическая компоновка универсальной CRT.
    • Централизованное развертывание универсальной CRT.
    • Помещение файлов универсальной CRT в один каталог с приложением.

Развертывание в 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<version>_CRT_<target>.msm файлы выполняют то же самое.

Локальное развертывание универсальной CRT в Windows XP осуществляется так же, как и в других поддерживаемых операционных системах.

Важно!

Поддержка библиотеки среды выполнения для Windows XP больше не доступна в последних Распространяемый компонент Visual C++ для Visual Studio 2015, 2017, 2019 и 2022. Последняя распространяемая версия Windows XP — версия 16.7 (версия 14.27.29114.0). Если приложения Windows XP развернуты или обновлены до более поздней версии распространяемого компонента, приложения не будут работать. Дополнительные сведения и сведения о том, как получить версию распространяемого компонента, поддерживающую Windows XP, см. в разделе "Настройка программ для Windows XP".

См. также