Запуск процесса ImageMagick в Windows server с ошибкой "указанный модуль не найден."
Я использую ImageMagick для преобразования PDF-файлов в PNG. Запуск процесса из моего проекта Web API локально работает, пока я запускаю Visual Studio как администратор. При перемещении решения на сервер процесс ImageMagick завершается со следующей ошибкой
преобразовать.exe: невозможно загрузить модуль `C:Program ФайлыImageMagick-6.9.0-Q16модуликодерыIM_MOD_RL_PNG_.dll': не удалось найти указанный модуль.
У меня есть ghostscript и ImageMagick установлены так, как они должны быть на сервере. Что может быть причиной этого? Я могу проверить, что модуль действительно существует на сервере.
6 ответов
решением этой проблемы в моей ситуации было установить переменную среды для ImageMagick непосредственно в коде, где я вызывал процесс.
System.Environment.SetEnvironmentVariable("Path", @"C:\Program Files\ImageMagick-6.9.0-Q16");
по-видимому, даже если переменная среды установлена на сервере, она может не найти ее из-за того, что среда выполнения отличается.
в моем случае, после новой установки Imagemagick, я получил ошибку simillar (не удалось загрузить модуль). Что помогло было просто:
перезагрузить систему
это, вероятно, потому, что системная переменная PATH или что-то подобное должно вступить в силу.
в моем случае я смог решить эту проблему с помощью портативной версии, поэтому ей не нужно ничего находить, поскольку все это встроено в exe.
Если вы только что установили ImageMagick и пытаетесь запустить его из командной строки, вам нужно будет открыть новое окно командной строки с обновленной переменной среды %PATH%.
вы можете попробовать что-то с SETX, но открытие нового окна командной строки кажется намного проще.
перезапустите Visual Studio или любую IDE (даже ваши командные подсказки, закройте и откройте их снова).
путь система не обновляется, вызывает эту ошибку в моей ситуации.
можно ли использовать Imagemagick для поиска libpng? Он действительно установлен? Вы вызываете преобразование ImageMagick.exe или преобразование Windows.exe?
convert.exe -version
должен ли png отображаться в списке делегатов? Что вы узнали из этой команды?