Развертывание в Visual C++ 2010
При развертывании приложения Visual C++ на другом компьютере необходимо установить как само приложение, так и файлы всех необходимых библиотек.Если библиотека обновляется, например при исправлении уязвимости системы безопасности, может возникнуть необходимость применить обновление везде, где развернуто приложение.
Visual Studio предоставляет три способа развертывания библиотек Visual C++ вместе с приложением: централизованное развертывание, локальное развертывание и статическое связывание.Microsoft автоматически обновляет свои библиотеки, развернутые централизованно.Для локально развернутых или статически связанных библиотек Visual C++ обновления должен предоставить модуль записи приложения.
Центральное развертывание
В централизованном развертывании файлы библиотек Visual C++ устанавливаются в каталог %windir%\system32\.Для централизованного развертывания библиотек Visual C++ можно использовать один из следующих вариантов.
Файлы распространяемого пакета, которые представляют собой автономные исполняемые файлы командной строки, которые можно использовать для задания распространяемых библиотек Visual C++.
Распространяемые модули слияния (MSM-файлы), которые можно использовать для развертывания определенных библиотек и которые включены в файл установщика Windows (.msi) вашего приложения.
Файл распространяемого пакета устанавливает библиотеки Visual C++ для конкретной системной архитектуры.Можно задать программе настройки приложения требование обязательно запускать его перед установкой приложения.Модуль слияния обеспечивает включение логики установки для конкретной библиотеки Visual C++ в файле настройки приложения установщика Windows.Можно включить столько модулей слияния, сколько требуется приложению.
Поскольку централизованное развертывание библиотек Visual C++ с помощью распространяемого пакета обеспечивает автоматическое обновление от Microsoft, рекомендуется использовать динамическое связывание и распространяемые пакеты для приложения.
Локальное развертывание
В локальном развертывании файлы библиотек устанавливаются в папку приложения вместе с исполняемым файлом.Разные версии библиотек можно устанавливать в одну папку, поскольку обеспечивается уникальность имени файла для каждой версии путем включения номера версии.Например, версия 12 для среды выполнения C имеет имя msvcr120.dll.
Поскольку корпорация Майкрософт не может автоматически обновлять локально развернутые библиотеки Visual C++, мы предупреждаем о недостатках локального развертывания этих библиотек.Если вы решите использовать локальное развертывание распространяемых библиотек, мы рекомендуем реализовать собственный метод автоматического обновления локально разворачиваемых библиотек.
Статическое связывание
Можно статически связать библиотеку Visual C++ с приложением, т.е. скомпилировать ее в приложение, чтобы не требовалось развертывать файлы библиотек Visual C++ отдельно.Однако не рекомендуется использовать такой подход, поскольку статически связанные библиотеки не могут обновляться на месте.Если используется статическое связывание и необходимо обновить связанную библиотеку, потребуется выполнить повторную компиляцию и повторное развертывание приложения.
Устранение неполадок
Порядок загрузки библиотек Visual C++ зависит от системы.Чтобы выявить причины неполадок загрузчика, используйте средство depends.exe или where.exe.Дополнительные сведения см. в разделе Порядок поиска библиотеки динамической компоновки (Windows).