Распространение Приложения и привязка к определенной библиотеке.
Обновлен: Июль 2008
Библиотеки для Visual Studio часто обновляются после выпуска. Например, это происходит при установке пакета обновления. Приложения, созданные с использованием обновленных библиотек, могут зависеть от некоторых изменений, сделанных в последних выпусках. Приложение может работать непредсказуемо, если передать его пользователю, который не установил такие же библиотеки, Чтобы не было неожиданностей, нужно привязать приложение к определенной версии библиотек.
Привязка по умолчанию
В этом разделе описана привязка по умолчанию приложений, скомпилированных с Visual C++ 2008 и более поздними выпусками. При компиляции приложения оно привязывается к исходной версии доступных библиотек. Это выполняется, даже если на компьютере установлена более поздняя версия. Например, если на компьютере установлен пакет обновления Visual C++ 2008 SP1, любое компилируемое приложение будет зависеть от исходной версии Visual C++ 2008.
Это поведение не имеет значения при развертывании приложения путем установки в централизованном расположении. При использовании такой схемы распространения последние версии библиотек всегда будут доступны для пользователя. Однако, если используется локальный метод развертывания, такой как метод закрытых сборок, описанный в подразделе Практическое руководство. Развертывание с помощью Xcopy, это поведение важно.
Поведение по умолчанию позволяет перекомпилировать программу после получения новой версии, а также распространять новый исполняемый файл. Конечным пользователям, которые уже установили необходимые библиотеки, нужен только новый исполняемый файл, нет необходимости упаковывать и переустанавливать последние версии библиотек.
![]() |
---|
Если приложение зависит от функций, введенных в последней версии, необходимо перенести и установить новые библиотеки, в противном случае приложение не запустится. |
Привязка к определенной версии
Если нужно, чтобы приложение требовало установки новых библиотек на компьютер, используйте следующую строку (или строки) кода.
#define _BIND_TO_CURRENT_CRT_VERSION 1;
#define _BIND_TO_CURRENT_ATL_VERSION 1;
#define _BIND_TO_CURRENT_MFC_VERSION 1;
#define _BIND_TO_CURRENT_OPENMP_VERSION 1;
Для привязки приложения к текущей версии всех библиотек Visual C++ используйте следующую строку кода. Это объединение всех предыдущих строк кода.
#define _BIND_TO_CURRENT_VCLIBS_VERSION 1;
![]() |
---|
Рекомендуется определить эти макросы на уровне командной строки. Если нужно включить эти определения в код, то их необходимо поместить в самом начале каждого блока компиляции — как первые строки в stdafx.h. |
Когда приложение привязано к набору библиотек, оно не будет запускаться на компьютере с более ранней версией этих библиотек. При привязке приложения к определенной минимальной версии рекомендуется поставлять приложение вместе с требуемой версией библиотек.
См. также
Основные понятия
Распространение файлов Visual C++
Журнал изменений
Дата |
Журнал изменений |
Причина |
---|---|---|
Июль 2008 |
Добавлен раздел. |
Изменение функции SP1. |