Поделиться через


Выбор метода развертывания

В большинстве случаев развертывание приложений Visual C++ выполняется развертыванием установщика Windows.Дополнительные сведения о методах развертывания, которые поддерживаются в Visual Studio, и об альтернативных методах развертывания, см. в разделах Выбор стратегии развертывания и Deployment Alternatives.Развертывание ClickOnce для собственных приложений Visual C++ не поддерживается в Visual Studio 2010, однако, имеется возможность развернуть приложения Visual C++ в командной строке посредством ClickOnce.Дополнительные сведения см. в разделе Развертывание с помощью технологии ClickOnce для приложений Visual C++.

Библиотеки Visual C++ — общие библиотеки DLL

Visual Studio 2010 устанавливает библиотеки Visual C++ в качестве общих библиотек DLL в каталог %windir%\system32.Чтобы убедиться, что приложение Visual C++ будет выполняться на компьютере, на котором отсутствуют установленные библиотеки Visual C++, возможно, придется распространить библиотеки DLL Visual C++ с приложением и убедиться в том, что эти библиотеки установлены на конечном компьютере.

Распространение библиотек Visual С++

Существуют три способа распространения DLL-библиотек Visual C++:

При установке библиотек Visual C++ с использованием повторно распространяемых модулей слияния библиотеки DLL развертываются в виде общих библиотек DLL в каталоге %windir%\system32.Для доступа к этой папке необходимо, чтобы приложение установщика выполнялось от имени пользователя с правами администратора.

Если установка выполняется пользователем, который не имеет прав администратора, то развертывание библиотек DLL Visual C++ даст сбой во время установки и приложение не будет выполняться.Также, в некоторых продуктах разрешена установка для отдельных пользователей, но модули слияния выполняют установку библиотек в места совместного доступа и оказывают влияние на всех пользователей системы.В двух последних и подобных сценариях поддерживаемый метод состоит в установке необходимых библиотек DLL в каталог определенного пользовательского приложения.

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

Неверное распространение библиотек Visual C++ может привести к ошибкам во время выполнения при выполнении приложения, которое зависит от этих библиотек.

Динамическое связывание предпочтительнее статического

Не рекомендуется распространять приложения C/C++, которые статически привязаны к библиотекам Visual C++.Часто ошибочно полагают, что при статической привязке программ к библиотекам Visual C++, возможно значительно усовершенствовать производительность приложения.Однако, почти во всех случаях влияние, которое оказывается на производительность вследствие динамической загрузки библиотек Visual C++ незначительно.Более того, в случае статической привязки не позволяется обслуживание приложения и его зависимых библиотек даже автором приложения или Microsoft.Например, рассмотрим приложение, которое статически привязано к определенной библиотеке и выполняется на клиентском компьютере с новой версией этой библиотеки.В приложении по-прежнему используется код из предыдущей версии этой библиотеки. Приложение не получает преимуществ от усовершенствований библиотеки, таких как усовершенствование безопасности.Разработчикам приложений С/C++ настоятельно рекомендуется рассмотреть сценарии обслуживания перед тем, как принимать решение о статической привязке к зависимым библиотекам, и при любой возможности использовать динамическую привязку.

См. также

Основные понятия

Выбор стратегии развертывания

Развертывание и безопасность технологии ClickOnce

Примеры развертывания

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

Развертывание приложений рабочего стола (Visual C++)

Windows Installer Deployment Overview