Распространение общего компонента среды выполнения C в Visual C++

В этой статье описывается, как распространить общий компонент среды выполнения C в Visual C++.

Исходная версия продукта: Visual Studio, платформа .NET Framework
Исходный номер базы знаний: 326922

Сводка

Когда вы создаете приложение в Microsoft Visual Studio и используете библиотеки времени выполнения C (CRT), распространяйте соответствующую библиотеку динамической компоновки CRT (DLL) из следующего списка вместе с приложением:

  • Msvcr90.dll за Microsoft Visual C++ 2008 г.
  • Msvcr80.dll за Microsoft Visual C++ 2005 г.
  • Msvcr71.dll для Microsoft Visual C++ .NET 2003 с Microsoft платформа .NET Framework 1.1
  • Msvcr70.dll для Microsoft Visual C++ .NET 2002 с Microsoft платформа .NET Framework 1.0

Для Msvcr70.dll или для Msvcr71.dll следует установить библиотеку DLL CRT в каталог файлов программы приложения. Вы не можете установить эти файлы в системные каталоги Windows. Для Msvcr80.dll и для Msvcr90.dll следует установить CRT как параллельные сборки Windows.

Конфликт DLL

Общая библиотека DLL CRT была распространена корпорацией Майкрософт в прошлом как общий системный компонент. Это может вызвать проблемы при запуске приложений, связанных с другой версией CRT на компьютерах, на которых не установлены правильные версии библиотеки DLL CRT. Обычно это называется проблемой конфликта DLL .

Чтобы устранить эту проблему, библиотека DLL CRT больше не считается системным файлом, поэтому она распространяется вместе с любым приложением, которое на ней опирается. Так как он больше не является системным компонентом, установите его в каталоге Program Files приложений с другим кодом, зависящим от конкретного приложения. Это не позволяет приложению использовать другие версии библиотеки CRT, которые могут быть установлены по системным путям.

Visual C++ .NET 2003 или Visual C++ .NET 2002 устанавливает библиотеку DLL CRT в каталоге System32 в системе разработки. Устанавливается для удобства разработчика. В противном случае всем проектам, созданным с помощью Visual C++, которые связаны с общей CRT, требуется копия библиотеки DLL в каталоге сборки для отладки и выполнения. Visual C++ 2005 и Visual C++ 2008 устанавливают библиотеку DLL CRT в качестве параллельной сборки Windows в операционных системах Windows XP и более поздних версий. Windows 2000 не поддерживает параллельные сборки. В Windows 2000 библиотека DLL CRT устанавливается в каталоге System32.

При распространении приложений, которым требуется общая библиотека CRT, в библиотеке DLL CRT рекомендуется использовать модуль слияния CRT.msm, который входит в состав Visual C++ вместо прямого распространения DLL-файла.

Параллельные сборки Windows

Msvcr80.dll с Visual C++ 2005 и Msvcr90.dll с Visual C++ 2008 распространяются как параллельные сборки Windows, за исключением Windows 2000. Эти версии CRT можно установить на целевых компьютерах, запустив приложение Vcredist_x86.exe, входящее в состав Visual Studio. Существуют установщики для платформ x64 и IA-64. Вместо этого можно использовать модуль слияния msm CRT, поставляемый вместе с Visual Studio, чтобы упаковать установщик CRT в собственное приложение установки. Что сделает CRT доступным в качестве общей сборки для всех приложений, так как она установлена в каталоге \windows\winsxs в поддерживаемых операционных системах.

Ссылки