Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Рекомендуется использовать установщик Windows для развертывания. Установщик Windows поддерживает установку, восстановление и удаление, а также поддерживает атомарное обновление файлов приложения, зависимостей и записей реестра. Если приложение Visual C++ не является автономным и может быть развернуто с помощью команды копирования, используйте установщик Windows.
Примечание.
Хотя развертывание ClickOnce для собственных приложений Visual C++ возможно в Visual Studio, оно требует дополнительных действий. Дополнительные сведения см. в статье "Развертывание ClickOnce для приложений Visual C++".
Библиотеки Visual C++ — это общие библиотеки DLL
Так как библиотеки Visual C++ устанавливаются в каталог %windir%\system32\ при помощи установщика Visual Studio, разрабатываемое приложение Visual C++, зависящее от этих библиотек, будет выполняться должным образом. Однако на большинстве компьютеров не установлено Visual Studio. Чтобы развернуть приложение на этих компьютерах, рекомендуется убедиться, что библиотеки установлены вместе с приложением.
Распространяемые библиотеки Visual C++
В развертываниях можно распространять любую версию библиотеки Visual C++, которая лицензирована для распространения. Развертывание можно выполнить тремя способами.
Централизованное развертывание, используя пакеты Visual C++ Redistributable. Этот подход является тем, который мы рекомендуем. Распространяемый пакет Visual C++ — это исполняемый файл, который устанавливает библиотеки Visual C++ как общие DLL в
%windir%\system32\. (Для установки в этой папке требуются права администратора.) Вы можете создать загрузчик, скрипт или программу установки, которая запускает распространяемый пакет перед установкой приложения на целевом компьютере. Распространяемые пакеты доступны для платформ x86, x64, ARM64 и ARM. Дополнительные сведения о том, где найти файлы пакета, см. в разделе "Поиск распространяемых файлов". Сведения об использовании пакета Redistributable см. в пошаговом руководстве: Развертывание приложения Visual C++ с помощью пакета Visual C++ Redistributable.Централизованное развертывание с помощью модулей слияния. Этот метод устарел, так как библиотеки, развернутые таким способом, не могут быть автоматически обновлены через Windows Update. Модули слияния можно использовать для установки определенной библиотеки Visual C++ в качестве общей библиотеки DLL
%windir%\system32\. (Для установки в эту папку требуются права администратора.) Модули слияния становятся частью файла установщика.msiдля приложения. Поскольку они устарели, Redistributable модули слияния Visual C++ являются необязательными компонентами, которые можно установить в Visual Studio 2019 и 2022. Они устанавливаются по умолчанию в Visual Studio 2017 и 2015. Дополнительные сведения см. в разделе "Где найти файлы модуля слияния".Локальное развертывание. Локальное развертывание не рекомендуется в большинстве случаев. В локальном развертывании вы копируете определенные библиотеки DLL Visual C++ из установки Visual Studio ( обычно в
\%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\) и устанавливаете их на целевых компьютерах в той же папке, что и исполняемый файл приложения. Этот метод развертывания можно использовать для включения установки пользователями, у которых нет прав администратора. Кроме того, для приложений, которые могут выполняться с флеш-накопителя или сетевой папки.
Если в развертывании используются модули распространяемого слияния, пользователь, устанавливающий приложение, должен иметь права администратора. В противном случае библиотеки DLL Visual C++ не установлены, а приложение может не запускаться. Установщики приложений, разрешающие установку для каждого отдельного пользователя, устанавливают библиотеки в общей папке, что влияет на всех пользователей системы. Локальное развертывание можно использовать для установки необходимых библиотек DLL Visual C++ в каталоге конкретного приложения пользователя. Этот подход не влияет на других пользователей или не требует прав администратора. Поскольку это может привести к проблемам с обслуживаемостью, мы не рекомендуем локальное развертывание библиотек DLL из составного пакета Visual C++ Redistributable.
Неверное развертывание библиотек Visual C++ может привести к ошибкам во время выполнения при выполнении приложения, которое зависит от этих библиотек. Когда операционная система загружает приложение, он использует порядок поиска, описанный в LoadLibraryEx.
Динамическое связывание лучше статического связывания
Рекомендуется избегать статического связывания при распространении библиотек Visual C++. Хотя статическое связывание почти никогда не приводит к значительному улучшению производительности приложения, оно почти всегда усложняет обслуживание. Например, рассмотрим статически связанное приложение с библиотекой, которая была обновлена с улучшениями безопасности. Приложение не может получить выгоду, если оно не будет перекомпилировано и заново развернуто. Вместо этого рекомендуется динамически связывать приложения с библиотеками, от которыми они зависят. Затем библиотеки можно обновлять везде, где они развернуты.
См. также
Развертывание настольных приложений
Развертывание и безопасность технологии ClickOnce
Примеры развертывания