Развертывание в Visual C++ 2010

При развертывании приложения на другом компьютере необходимо установить само приложение и файлы всех необходимых библиотек. Visual C++ 2010 предоставляет три способа развертывания среды выполнения Visual C++ с приложением: центральное развертывание, локальное развертывание или статическое связывание.

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

Центральное развертывание означает, что библиотеки DLL Visual C++ устанавливаются в каталог System32. Для центрального развертывания приложения используйте одно из следующих средств:

  • Программа командной строки **VCRedist_**архитектура.exe, где архитектура — это x32, x64 или ia64.

  • Модули слияния.

Программа VCRedist_архитектура.exe устанавливает все библиотеки для определенной аппаратной платформы. Модули слияния (или MSM-файлы) предоставляют стандартный метод, с использованием которого разработчики создают общие компоненты Windows Installer и логику установки приложений.

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

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

Локальное развертывание означает, что файлы библиотек приложения устанавливаются в каталог приложения. Чтобы развернуть приложение локально, просто скопируйте исполняемый файл и файлы связанных с ним библиотек в папку.

В этом случае библиотеки различных версий могут сосуществовать, поскольку имена файлов содержат номер версии (например, библиотека DLL CRT версии 10 имеет имя файла msvcr100.dll).

В отличие от центрально развернутых библиотек локальные библиотеки не обновляются автоматически корпорацией Майкрософт. Если решено использовать локальное развертывание, следует внедрить собственный метод обновления библиотек.

Статическое связывание

Можно статически связать приложение с любой библиотекой (например, CRT, MFC или ATL) для получения исполняемого файла, не зависящего от библиотек DLL. Преимущество статического связывания заключается в том, что развертывание приложения можно скопировать с одного компьютера на другой без файлов библиотек. Если при статическом связывании корпорация Майкрософт обновляет библиотеку, к которой выполнена привязка, приложение не может использовать эту обновленную библиотеку.

Уязвимости системы безопасности

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

Если уязвимость считается критической и требует срочного устранения, корпорация Майкрософт воспользуется Центром обновления Майкрософт для обслуживания всех компьютеров, на которых соответствующая библиотека Visual C++ установлена центрально. Если приложение использует локальные файлы библиотек, необходимо самостоятельно принять меры по срочному обслуживанию.

Различия между Visual C++ 2008 и Visual C++ 2010

Ниже перечислены наиболее значимые отличия Visual C++ 2008 и Visual C++ 2010:

  • Библиотеки Visual C++ больше не зависят от манифестов и не устанавливаются в папку WinSxS.

  • Зависимым приложениям и библиотекам больше не требуются сведения манифеста.

  • Локальное развертывание больше не требует сопутствующего манифеста.

  • Загрузка локальных библиотек Visual C++ не может быть перенаправлена в центральное расположение.

  • Срочное обслуживание применяется только к центрально развернутым библиотекам.

Устранение неполадок

Чтобы выявить причины неполадок загрузчика, используйте средство depends.exe или where.exe. Порядок загрузки библиотек Visual C++ определяется объектом LoadLibraryEx.

См. также

Другие ресурсы

Развертывание (Visual C++)