Упаковка приложения, которое использует ImageMagick C API

Я создал немного Приложения Windows, которое использует ImageMagick C API, но столкнулось с чем-то вроде кирпичной стены. Приложение хорошо работает, и я готов совместно использовать его с немногими другими в нашей организации, но я не могу найти документацию относительно распределения такого приложения, не устанавливая ImageMagick на целевой машине.

У кого-либо здесь есть информация или ссылка на информацию, которая детализирует, как упаковать это для распределения? Какие DLLs требуются и в каком (s) нуждаются к зарегистрированному в Windows? Целевые пользователи будут на соединении XP и Win7.

5
задан John Gardeniers 18 June 2010 в 05:30
поделиться

3 ответа

Из описания на этой странице, похоже, что последний указанный пакет Windows, ImageMagick-6.6.2-Q16-windows.zip, упакован без установщика, и предназначен для использования с приложениями, которые хотят самостоятельно устанавливать и распространять. Это звучит ближе всего к тому, что вы ищете.

1
ответ дан 18 December 2019 в 13:11
поделиться

Мне пришлось сделать нечто подобное, хотя я сам построил Imagemagick, чтобы сократить жир. Что вы можете сделать, так это установить на свой компьютер библиотеки DLL, используя exe, который они предоставляют . В процессе установки убедитесь, что вы установили флажок установить заголовки и библиотеки для разработки C и C ++.

После этого установочный каталог будет содержать заголовки в подключаемом каталоге и библиотеки DLL по всему дереву. Вы найдете библиотеки, с которыми вам нужно связать ссылки в lib. Однако существует масса dll, что создает небольшую проблему.

При сборке я просто создал одну DLL ImageMagick и файл .lib для связи. Я создал свой собственный проект из исходников и собрал dll. Затем вы можете отправить DLL и созданную библиотеку с заголовками из исходного кода.

РЕДАКТИРОВАТЬ: Я также должен указать, что процесс установки происходит только на вашем компьютере. Затем вы можете скопировать dll / libs / headers из пути установки и отправить их вместе с вашим пакетом, вместо того, чтобы требовать от пользователя установки чего-либо, кроме вашего приложения.

4
ответ дан 18 December 2019 в 13:11
поделиться

Я могу предложить два метода:

  1. Использовать статические библиотеки (двоичные файлы доступны на сайте ImageMagick) и скомпилировать ваше приложение, используя их (может быть невыполнимо, если ваше приложение на . NET или подобном)
  2. Проверьте, какие DLL загружаются вашим приложением, и поместите их в тот же каталог, что и исполняемый файл во время установки/распаковки, поскольку Windows всегда включает текущий каталог в поиск DLL
  3. Теоретически вы можете поиграть с SxS и заставить ваш пакет зарегистрировать библиотеки в SxS store и заставить ваше приложение зависеть от них. Хотя лично я сторонник SxS, я подозреваю, что это внесет ненужные сложности, учитывая, что команда ImageMagick, похоже, сама не имеет версии SxS, что снижает ценность от использования SxS (а это совместное использование DLL)
3
ответ дан 18 December 2019 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: