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


Распространение файлов Visual C++

Обновлен: Ноябрь 2007

Разрабатывая приложения с помощью Visual C++, вы получаете возможность работать на компьютере, который представляет собой не только хорошую среду разработки, но и удобную среду для запуска и тестирования приложений. Однако при необходимости развертывания приложений на других компьютерах требуется распространение всех файлов поддержки в конечной системе. Дополнительные сведения о том, какие файлы может понадобиться распространить вместе с приложением, см. в разделах Примеры развертывания и Определение библиотек DLL для распространения.

Вместе с приложением разрешается распространять только некоторые файлы Visual C++. Сведения о том, какие файлы могут быть распространены с приложением, см. в лицензионном соглашении Microsoft Software License для Visual Studio 2005 и в файле Redist.txt. Файл соглашения (EULA.txt) можно найти в папке \Setup на первом диске продукта Visual C++ 2008 или на DVD, а файл Redist.txt — в папке Program Files\Microsoft Visual Studio 2005 на втором диске или на DVD.

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

ms235299.alert_note(ru-ru,VS.90).gifПримечание.

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

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

Распространяемый пакет Visual C++ (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe) необходимо выполнить на конечной системе перед установкой приложения. Этот пакет устанавливает и регистрирует все библиотеки Visual C++.

ms235299.alert_note(ru-ru,VS.90).gifПримечание.

Рекомендуется использовать этот пакет для распространения библиотек Visual C++ для приложений, которые были построены с помощью Visual C++ Express, и для случаев одновременного развертывания библиотек Visual C++.

Пример использования этого пакета см. в разделе Практическое руководство. Развертывание с помощью Xcopy.

При развертывании библиотек Visual C++ как закрытых параллельных сборок все библиотеки DLL и файлы манифеста, образующие сборку, добавляются к установщику Windows или подобному установочному пакету. Они должны развертываться на конечном компьютере во вложенной папке локальной папки приложения в соответствии с правилами развертывания закрытых сборок. Сведения о том, какие библиотеки DLL и файлы манифеста Visual C++ частью каких сборок Visual C++ являются, см. в разделе Visual C++ Libraries as Shared Side-by-Side Assemblies. Описание правил развертывания частных сборок для загрузки во время выполнения см. в разделе Порядок поиска сборок. Пример развертывания библиотек Visual C++ как закрытой сборки см. в разделе Практическое руководство. Развертывание с помощью Xcopy.

Возможные ошибки во время выполнения

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

  • Ошибка при инициализации приложения (0xc0000135).

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

  • Не удается выполнить указанную программу.

Если в приложении нет манифеста, возникающая ошибка зависит от того, где развернута библиотека Visual C++ приложения: в локальной папке этого приложения или в общей папке, например System или WinSxS.

ms235299.alert_note(ru-ru,VS.90).gifПримечание.

Повторное распространение приложений C/C++, созданных без манифеста, не поддерживается. Приложения C/C++ не могут использовать библиотеки Visual C++ без привязки приложения к этим библиотекам с помощью манифеста. Дополнительные сведения см. в разделе Выбор метода развертывания.

Если библиотека DLL Visual C++ (например, MSVCR90.DLL) является доступной (то есть установлена либо в локальной папке приложения, либо в папке System), может появиться сообщение:

R6034 Приложение предприняло попытку некорректной загрузки библиотеки C времени выполнения.

Если библиотека DLL недоступна и Windows не может загрузить эту библиотеку для приложения, может появиться следующее сообщение об ошибке.

Приложение не было запущено, поскольку файл MSVCR90.dll не найден. Повторная установка приложения может решить данную проблему.

Чтобы устранить эти ошибки, необходимо проверить, правильно ли построено приложение и правильно ли развернуты библиотеки Visual C++ на конечной системе. Чтобы выявить основную причину этих ошибок во время выполнения, следуйте инструкциям, описанным в разделе Устранение неполадок в изолированных приложениях и параллельных сборках C/C++.

Содержание

См. также

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

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

Устранение неполадок в изолированных приложениях и параллельных сборках C/C++

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

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