Невозможно загрузить DLL 'ABCpdf9-64.dll'. Указанный модуль не найден (Исключение из HRESULT: 0x8007007E)

Я установил версию abcPDF 9.1.1.5 на мою локальную машину, и все работает отлично. но я развернуть код на машине Windows Server 2008 R2 я получаю эту ошибку.

любой направляет меня, в чем может быть проблема.

Я уже изучил следующие статьи, и это не работает для меня.

1 и 2

Код:

string strFileName = Invoice.InvoiceNumber;
XSettings.License = "something-something-something";
Doc m_GeneratePDF = new Doc();
m_GeneratePDF.HtmlOptions.Engine = EngineType.Gecko;
StringBuilder strBuilderHTML = new StringBuilder();
string strHTML;
strBuilderHTML.Append("<HTML>");
strBuilderHTML.Append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />");
strBuilderHTML.Append("<head>");
//strBuilderHTML.Append("<link href='styles/Site.css' rel='stylesheet' type='text/css' />");
strBuilderHTML.Append("</head>");
strBuilderHTML.Append("<BODY>");
strHTML = strBuilderHTML.ToString();

theID = m_GeneratePDF.AddImageHtml(strHTML);

Это относится к моей проблеме.

4 ответа

Решение

Наконец после 3 дней борьбы с этим я решил ее.

Вот что я сделал: 1) Я публиковал код из 32-битной машины Windows 8 2) Мой сервер был Windows Server 2008 R2 64-битной машины.

=> Я включил 32-битные приложения из опций iis, которые никогда не решали мою проблему в соответствии с поиском в Google, тогда я => установил "Загрузить профиль пользователя", который снова никогда не решил мою проблему. => тогда кто-то сказал мне дать полные права на abcPDF и dll abcGeco на вашем сервере, которые также никогда не работали.

Затем я, наконец, скомпилировал мой код с 64-битной машины ИЛИ я скопировал 64-битные файлы ABCpdf & ABCGeco из папки bin в мою опубликованную папку, которая наконец-то сработала.

Просто хочу добавить мое решение:
Установите ABCpdf (в моем случае "ABCpdf.NET64.exe") на сервере, вот и все. (Вы можете, вероятно, скопировать некоторые DLL-файлы вокруг, чтобы решить проблему)

за ошибку:
Невозможно загрузить DLL 'ABCpdf10-64.dll': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Окружающая среда (все x64)
Продукт: Windows Server 2012 R2 Разработчик: Windows 10, Visual Studio 2015

Что сработало для меня.

  1. Установите новейшую версию/версию, на которую указывает ошибка.

Не удалось загрузить DLL «ABCpdf 12-64.dll ». Не удалось найти указанный модуль (исключение из HRESULT: 0x8007007E).

  1. Стройте и запускайте. Если это работает, то поздравляю. Решено. Пропустите все остальные шаги.

    • Если это не сработает, вы должны получить сообщение об ошибке, жалующееся на несоответствие версии. И он должен указать версию, которая ему требуется. Перейти к шагу 3
  2. Установите правильную версию из галереи NuGet: https://www.nuget.org/packages/ABCpdf.ABCGecko/12.3.0.5 .

  3. Перейдите в ..\solution\packages\ABCpdf.[номер версии]\build\ и скопируйте файл ABCpdf12-64.dll в ..\solution\project\Bin\

  4. Построить и запустить

Это сработало для меня

Это, вероятно, не будет слишком полезным здесь. Но я также боролся с этим из унаследованного проекта после того, как Центр обновления Windows сломал очень старую реализацию ABCPDF в веб-приложении ASP.NET. Я не говорю, что вы должны повторять эти шаги, но я помещаю все эти шаги здесь на случай, если это поможет кому-то еще определить, что им может понадобиться сделать. Кроме того, я был на ABCPDF10, но не понимаю, почему это не сработает для любой версии.

  1. Я установил 64-битный ABCPDF10, а затем установил 32-битный ABCPDF10 через MSI для каждого.
  2. Затем я скопировал файлы из соответствующих каталогов C:/Program Files в корзину/ моего проекта вручную в соответствии с инструкциями ABCPDF. Это не сработало для меня, потому что, когда я начал сборку в VS2015, по какой-то причине он не мог видеть .DLL.
  3. Затем я удалил его, удалив файлы из моего проекта bin/ вручную, а затем используя «Добавить/удалить приложения» в Server2012R2.
  4. Затем я использовал Nuget для загрузки ABCPDF, и это сработало, и его можно было собрать. Но мне все равно нужен был ABCPDF.Gekco
  5. Затем я использовал Nuget, чтобы попытаться установить ABCPDF.Gecko. Это загрузило его, но не установило полностью. Я вручную скопировал отсутствующие .dll и .exe в каталог bin/ и построил проект.
  6. Именно в этот момент я застрял с сообщением об ошибке из оригинального плаката.
  7. Что сработало для меня, так это то, что я оставил каталог Project и bin/ в покое, а затем использовал установщик .MSI и переустановил только версию x64 в C:/, как и любую другую программу. Мне не пришлось копировать файлы. Я только что пересобрал проект и бум! Это сработало.

Мне кажется, что проблема с ключом/путем реестра. Но я понятия не имею, правильно ли это.

Надеюсь, это поможет кому-то еще.

Другие вопросы по тегам