PdfiumViewer Pdfium Exception - VS2017 Created Project должен быть .Net 4.0, а затем обновиться до любых более поздних версий.

VS2017, версия 15.9.3

Пакеты NuGet PdfiumViewer version = "2.13.0.0"

PdfiumViewer.Native.x86_64.v8-xfa version = "2018.4.8.256"

Сценарий тестирования - загрузка файла PDF с помощью PdfiumViewer

  1. Создайте Project1: Target Framework = .Net Framework 4. Программа работает успешно.
  2. Измените Project1 на любую более высокую Framework - 4.5, 4.5, 4.6 ... 4.72 Программа работает успешно

3. Создайте Project2: Target Framework = .Net Framework 4.7.2 или любой другой FW 4.5, 4.5, 4.6 (** НЕ FW 4).
Сообщение об ошибке: $ exception {"Была сделана попытка загрузить программу с неверным формат. (Исключение из HRESULT: 0x8007000B) "} System.BadImageFormatException

  1. Измените Project2 на FW = 4. Программа работает успешно.
  2. Измените Project2 на любую более высокую Framework - 4.5, 4.5, 4.6 ... 4.72 Программа работает успешно

Код

Сообщение об ошибке: $ exception {"Была сделана попытка загрузить программу с неправильным форматом. (Исключение из HRESULT: 0x8007000B)"} System.BadImageFormatException

  private void button1_Click(object sender, EventArgs e)
  {
     string pdf = @"D:\PDF\TestFile.pdf";

     try
     {
        var document = PdfiumViewer.PdfDocument.Load(pdf);   // *** Exception  ***
        MessageBox.Show("OK");
     }
     catch (Exception ex)
     {
        MessageBox.Show(ex.Message);
     }
  }

==============

Помощь приветствуется.


person G. Young    schedule 01.03.2019    source источник


Ответы (1)


Добавьте обе папки x86 и x64, содержащие pdfium.dll, в каталоги Debug / Release, которые должны быть способ. Если вы не знаете, где их найти, запустите проект PdfiumViewer.Demo из PdfiumViewer Github, вы найдете их в папке bin.

person MAAI    schedule 26.01.2020
comment
Вы хотите, чтобы это был уточняющий вопрос или попытка ответить на него? В первом случае, пожалуйста, посмотрите здесь (хотя вы, вероятно, знаете) meta.stackexchange.com/questions/214173/ Во втором случае перефразируйте на ответ будет более убедительным, иначе это рискует быть ошибочно принятым за первый случай и закрытым, так как не является ответом. - person Yunnosch; 26.01.2020