Как вы упаковать проект Visual Studio C ++ для выпуска?

голоса
32

Я задаюсь вопросом, как сделать сборку выпуска, который включает все необходимые DLL файлы в EXE-файл, так что программа может быть запущена на машине без развития без ее установки майкрософт распространяемый на целевой машине.

Без этого вы получите сообщение об ошибке, что конфигурация приложения не является правильной и переустанавливать.

Задан 06/08/2008 в 10:49
источник пользователем
На других языках...                            


5 ответов

голоса
17

  1. Выберите Project -> Properties
  2. Выберите Конфигурация -> Общие
  3. В поле для того, как вы должны связать MFC выберите статически связать его.
  4. Выберите Linker -> Input. При дополнительных зависимостей , добавить какие - либо библиотеки , Вам необходимо приложение статически связать в.
Ответил 13/08/2008 в 19:10
источник пользователем

голоса
10

Вам нужно установить библиотеку времени выполнения (под C / C ++ -> Генерация коды) для всех проектов в статическую связь, которая коррелирует со следующими конфигурациями здания по умолчанию:

  • Многопоточный Debug / Release
  • Singlethreaded Debug / Release

В отличие от «DLL» версии этих библиотек.

Даже если вы сделаете это, в зависимости от библиотек, которые вы используете, вы, возможно, придется установить Merge Module / рамки / т.д. Это зависит от того, имеются ли статические LIB версии ваших зависимостей.

Ответил 07/08/2008 в 22:11
источник пользователем

голоса
4

Имейте в виде , что Microsoft не рекомендуется статическая ссылка исполняющая в проект , так как это предотвращает его от обслуживаемого обновления Windows , чтобы исправить критические ошибки безопасности. Есть также потенциальные проблемы , если вы передаете памяти между основным .exe и .dll , как если бы каждый из этих статических ссылок среда выполнения вы можете в конечной итоге с таНосом / свободными проблемами рассогласования.

Вы можете включать в себя библиотеку DLL с исполняемым файлом, без их компиляции в EXE-файл и без запуска REDIST инструмента - это то, что я делаю, и это, кажется, работает хорошо.

Только дегтя в бочке меда является то, что вам необходимо включить файлы дважды, если вы распространяете для широкого диапазона версий Windows - новая ОС нужны файлы в манифесте определенных каталогов и старые хотят все файлы в каталоге программы ,

Ответил 09/09/2008 в 12:41
источник пользователем

голоса
0

Если вы хотите узнать, какие библиотеки DLL ваша целевая машина отсутствует , то используйте depends.exe , который приходил с Msdev, но также можно найти здесь . Тестирование этого на несколько целевых машин должен сказать вам , какие DLL файлы, необходимые для упаковки с приложением.

Ответил 07/08/2008 в 07:40
источник пользователем

голоса
0

Вы хотите смотреть на статическую ссылку (в отличие от динамического связывания)

Я не уверен, сколько из Redistributables MS статически в.

Ответил 06/08/2008 в 13:10
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more